初始化类型的引用无效

时间:2013-01-10 17:53:31

标签: c++

我的代码(不是我的)中有一个函数isInstruction(),用于设置和获取成员没有问题。现在我为类似的目的添加了我自己的函数state()。像这样:

struct foo {
  bool & isInstruction() {
    return isInst;    // no problem
  }
  int & state() {
    return state;   //ERROR
  } 
private:
  bool isInst;
  int state;  
};

我对第一个功能没有任何问题。但是对于第二个,我得到了

error: invalid initialization of reference of type ‘int&’ from expression of type 
‘<unresolved overloaded function type>’

然后问题是这两个函数之间的区别是什么。我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

不同之处在于两个实体(成员变量和成员函数)共享相同的名称state,这就是造成问题的原因。

尝试重命名其中一个。