2

クラス用のプログラムを作成していますが、クラス定義で宣言すると、何らかの理由でこのエラーが発生します。

エラー: 関数内'void setMessageBuffer(std::string)'
エラー:'message'このスコープで宣言されていません。

class apple
{
     private:
         string message, message2;

     public:
         void setMessageBuffer(string);
};

void apple::setMessageBuffer(string messagebuff)
{
     message = messagebuff;
}

私はそのようなプログラムの他の部分を実行しましたが、それらは正常に動作しますが、何らかの理由でこの部分はコンパイルしたくないようです.

4

3 に答える 3

3

apple::メソッド名の前に置くのを忘れました。あなたのエラーメッセージは私にこれを教えてくれます!

error: in function 'void setMessageBuffer(std::string)'
error: 'message' was not declared in this scope.

それを次のように対比してください。

template.cpp: In member function ‘void apple::setMessageBuffer(std::string)’:
template.cpp:14:7: error: ‘another variable’ was not declared in this scope

(ここで間違っている場合はお詫びします。コンパイラの動作が原因かもしれません。g++-4.6)

于 2013-10-04T21:18:22.623 に答える