void func(const char &a)
{
cout<<"non-const";
}
void func(char &a)
{
cout<<"const";
}
int main()
{
char p = '1';
func(p);
return 0;
}
此时func§调用的是非const的函数,而其实他与const的函数也是匹配的,但不是最佳。如果像下面没有非const函数,则将调用const的函数。
void func(char &a)
{
cout<<"const";
}
int main()
{
char p = '1';
func(p);
return 0;
}
此时调用的是非const的函数。
因为形参在初始化时,可以用非const的引用对象初始化const引用对象的。反过来不行
//const char ptr = '2';
//char &a = ptr;//报错
char ptr = '2';
const char &a = ptr;//这样时可以的
C++函数重载与const引用
本文探讨了C++中函数重载机制下const引用参数的调用规则。通过实例说明,当存在非const与const引用重载时,如何选择最佳匹配函数,并解释了为何非const引用可以初始化const引用,反之则不行。
1841

被折叠的 条评论
为什么被折叠?



