2

これは説明が難しいかもしれません。私は、MS VisC++ 2010 Express で約 1 か月間プログラムを開発しています。奇妙な問題はなく、プロジェクトを 100 回ビルドする準備ができていたときに、突然、多くの.cppファイルがファイルとの接続を失ったように見えました.h。たとえば、main 関数では、私が数週間前に作成して使用したオブジェクトの下に、突然赤い線が表示され、構文エラー " theClass is undefined" が表示されました。これは に適用されるためiostream、突然coutは未定義になります。何が起こったのかわかりません。すべての外部ヘッダー ファイルとライブラリが突然 IDE から見えなくなりました。ファイルで、.cpp宣言するとclass constructor

//initializes a poker game
aPokerGame::aPokerGame(void)
{
    stopPlaying = 'n';          
}

クラス名の下に行が表示され、aPokerGameこのエラーは " must be a class or a namespace name" です。.hファイルが消えたらこうなるんじゃないの?実際、すべての.cppファイルでこの問題が発生しているわけではなく、一部のファイルのみです。他のものには、「クラスのデフォルトコンストラクターが存在しません」などの本当に奇妙なエラーがありますstd::basic_ostream<wchar...。これらのエラーはすべて一度に表示されました。

ヘッダーファイルは問題ないようです。そのうちの 1 つは、プライベート メンバーの " " 見出しのError: expected a declaration下に " " があります。Private:

助けてください!

コンパイル エラーの例を次に示します。

1>------ ビルド開始: プロジェクト: firstProj、構成: Win32 のデバッグ ------ 1> userPlayer.cpp 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj \userplayer.h(9): エラー C2504: 'Player': 基本クラス未定義 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10): エラー C2059: 構文エラー: '名前空間' 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10): エラー C2334: '{' の前に予期しないトークンがあります。明らかな関数本体をスキップする 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\userplayer.cpp(8): エラー C3254: 'Player': クラスに明示的なオーバーライド '{ctor}' が含まれていますが、関数宣言 1>c を含むインターフェイスから派生しない:
c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\player.h(18) : 'Player::Player' の宣言を参照 1>c:\users\bn\dropbox\myprojects\mysoftware\ c++\firstproj\firstproj\userplayer.cpp(13): エラー C3254: 'Player': クラスには明示的なオーバーライド '{dtor}' が含まれていますが、関数宣言 1>c:\users\bn\ を含むインターフェイスから派生していませんdropbox\myprojects\mysoftware\c++\firstproj\firstproj\userplayer.cpp(13): エラー C2838: '{dtor}': メンバー宣言の不正な修飾名 1>c:\users\bn\dropbox\myprojects\mysoftware\c++ \firstproj\firstproj\userplayer.cpp(13): エラー C2535: 'Player::~Player(void)': メンバー関数は既に定義または宣言されています 1>
cpp 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\npcplayer.h(9): エラー C2504: 'Player': 基本クラスが定義されていません 1>c:\users\bn\dropbox\ myprojects\mysoftware\c++\firstproj\firstproj\userplayer.h(9): エラー C2504: 'Player': 基本クラス未定義 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10 ): エラー C2059: 構文エラー: 'namespace' 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\iostream(10): エラー C2334: '{' の前に予期しないトークンがあります。明らかな関数本体をスキップする 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.h(35): エラー C2059: 構文エラー: 'string' 1>c:\program files (x86) \Microsoft Visual Studio 10.0\vc\include\time.h(35): エラー C2334: 「{」の前に予期しないトークンがあります。明らかな関数本体をスキップする 1>c:\users\bn\dropbox\myprojects\mysoftware\c++\firstproj\firstproj\pokerround.cpp(16): エラー C2059: 構文エラー: 'namespace'

4

1 に答える 1

7

おそらく、クラス定義の後にセミコロンが欠けている#includeか、標準ヘッダーファイルの上にある他のファイルの束にヘッダーファイルに似たようなものがありません。これにより、すべてが混乱し、コンパイラーはエラーとしてのみエラーを報告します途中でちょっとしたことを忘れていました。

各ヘッダー ファイルの構文を入念に再確認し、かっこや中かっこの不一致を探し、必要な場所にセミコロンがあることを確認します。

于 2012-09-21T01:12:52.233 に答える