【发布时间】:2011-01-28 07:44:27
【问题描述】:
我的答案是不!因为按值传递和按引用传递看起来与调用者相同。
但是,下面的代码编译正确
class A {
public:
void f(int i) {}
void f(int& i) {}
};
但是当我尝试使用它时,出现编译错误。
int main () {
A a;
int i = 9;
int& j = i;
a.f(1);
a.f(i);
a.f(j);
return 0;
}
为什么编译器不知道它会被使用却不禁用它?
【问题讨论】:
-
如果您显示实际的编译器错误和行号会有所帮助。
标签: c++ pass-by-reference overloading pass-by-value