gpt4 book ai didi

c++ - C++中的模棱两可的定义

转载 作者:行者123 更新时间:2023-11-28 08:06:31 25 4
gpt4 key购买 nike

我无法找出为什么 f 的调用不明确:/我知道这三个声明没问题,但在这种情况下这是行不通的..

#include <iostream>

using namespace std;
void f(int);
void f(int &);
void f(const int &);

void f(int a);

void f(int &a);

void f(const int &a);


int main()
{
int i=1;
const int ic=2;
int &ri=i;
const int & rc=ic;

f(i);
f(ic);
f(ri);
f(rc);

return 0;
}

最佳答案

I know that the three declarations are ok

如何?所有参数都可以转换为 int。歧义很明显。

你认为 int x = rc; 不会编译吗?

我认为您的困惑源于 void f(int);。由于参数是按值传递的,因此可以在新的 int 中复制的任何内容都与此重载相匹配。

关于c++ - C++中的模棱两可的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10188951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com