0

我的代码(不是我的)中有一个函数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>’

那么问题是这两个功能之间有什么区别。我错过了什么吗?

4

1 回答 1

5

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

尝试重命名其中之一。

于 2013-01-10T17:55:46.943 回答