49

6 行目で次のエラーが発生します。

error: expected unqualified-id before '{' token

何が悪いのかわかりません。

#include <iostream>

using namespace std;

class WordGame;
{               // <== error is here on line 6
public:

    void setWord( string word )
    {
        theWord = word;
    }
    string getWord()
    {
        return theWord;
    }
    void displayWord()
    {
        cout << "Your word is " << getWord() << endl;
    }
private:
    string theWord;
}


int main()
{
    string aWord;
    WordGame theGame;
    cin >> aWord;
    theGame.setWord(aWord);
    theGame.displaymessage();

}
4

6 に答える 6

36

ここにセミコロンがあってはなりません:

class WordGame;

...しかし、クラス定義の最後に 1 つある必要があります。

...
private:
    string theWord;
}; // <-- Semicolon should be at the end of your class definition
于 2012-04-13T04:34:03.680 に答える
9

補足として、余分なコピーを避けるために、setWord() で文字列を const 参照として渡すことを検討してください。また、displayWord では、const-correctness に従うために、これを const 関数にすることを検討してください。

void setWord(const std::string& word) {
  theWord = word;
}
于 2012-04-13T04:48:04.903 に答える
7

の後のセミコロンを取り除きWordGameます。

クラスがずっと小さいときに、この問題を実際に発見する必要がありました。コードを書いているときは、半ダースの行を追加するたびにコンパイルする必要があります。

于 2012-04-13T04:33:51.687 に答える
3

セミコロンは、名前の後ではなく、クラス定義の最後にある必要があります。

class WordGame
{
};
于 2014-06-02T09:33:32.173 に答える