zrfzrf
2017-11-08 02:15c++常量重载函数如何调用?
函数重载需要参数不同, 但如果一个函数标记为常量(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;
}
结果静态引用还是使用的普通引用函数, 那里出问题了呢?
- 点赞
- 回答
- 收藏
- 复制链接分享
3条回答
为你推荐
- MyString(const MyString &_str);跟运算符=的重载不是一个意思吗?为什么复制构造函数的定义不能像=重载那样写?
- c语言
- c++
- 2个回答
- c++赋值操作符重载问题
- c++
- 3个回答
- C++为什么形参会忽略顶层const 保留底层const
- c++
- 4个回答
- c++常量重载函数如何调用?
- c++
- 3个回答