考虑以下函数定义:
void fun(int& a)
{
cout << "Ra" << endl;
}
和
void fun(int a)
{
cout << "a" << endl;
}
现在,当我调用这样的函数时:
int a;
fun(a);
调用不明确,因为编译器无法决定是按值还是按引用调用。
我的问题是:
当我写这样的东西时:
int a;
int &b = a;
fun(b);
它再次引起歧义。由于b是一个引用,所以为什么不调用参数是引用的那个。
我已经在这个问题中看到了答案:Function Overloading Based on Value vs. Const Reference但它没有回答我的问题。请帮助。