0

isInstruction()私のコード(私のものではない)には、問題なくメンバーを設定および取得するために使用される関数があります。今、私は同様の目的のために私自身の関数を追加しましたstate()。このような:

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

最初の機能は問題ありません。しかし、2つ目は、

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

次に、これら2つの機能の違いは何ですか。私は何かが足りないのですか?

4

1 に答える 1

5

違いは、2つのエンティティ(メンバー変数とメンバー関数)が同じ名前を共有してstateいることです。これが問題の原因です。

それらの1つの名前を変更してみてください。

于 2013-01-10T17:55:46.943 に答える