zrfzrf
zrfzrf
2017-11-08 02:15

c++常量重载函数如何调用?

  • c++

函数重载需要参数不同, 但如果一个函数标记为常量(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条回答