函数重载需要参数不同, 但如果一个函数标记为常量(accessor)也可以通过编译, 但却调用不成功.
比如:
class T
{
public:
T(int x=0)
:value{x}{}
// 普通引用
int & v()
{
cout << "normal reference" << endl;
return value;
}
// 常态引用
const int & v() const
{
cout << "const refrence" << endl;
return value;
}
private:
int value;
};
int main()
{
T t{3};
int & a = t.v();
const int & b = t.v();
return 0;
}
结果静态引用还是使用的普通引用函数, 那里出问题了呢?