我的代码(不是我的)中有一个函数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>’
然后问题是这两个函数之间的区别是什么。我错过了什么吗?
答案 0 :(得分:5)
不同之处在于两个实体(成员变量和成员函数)共享相同的名称state
,这就是造成问题的原因。
尝试重命名其中一个。