虽然这两个函数的错误名称不同,但为什么这两个函数都不明确

时间:2014-11-15 09:02:26

标签: c++ pass-by-reference overloading name-mangling

考虑以下函数定义:

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但它没有回答我的问题。请帮助。

0 个答案:

没有答案