私は過去2時間を費やして、なぜ私のプログラムに非常に多くのエラーメッセージがあるのか理解しようとしました。クラスヘッダーファイルの最後に閉じ括弧を追加するのを忘れていました。だから私の質問は:なぜ私は私の他のプロジェクトファイルの中にその欠けている欠点の結果として発生したエラーのメッセージのcraploadを持って、私のヘッダーファイルで、この問題についてのエラーメッセージを取得していないのですか?誰かが、初心者が理解できる用語で私にこれを説明してくださいすることができれば、それはクラス定義の末尾に中括弧がない場合、C++クラスのヘッダーファイルにエラーメッセージはありませんか?
1
A
答えて
0
、私はあなたがこの例のように、いくつかのクラスを定義したとします
class A
{
public:
A() {}
~A() {}
void do_something();
// missing };
class B
{
public:
B() {}
~B() {}
void do_something_other();
};
コンパイラは、クラスBの説明を読み始め、あなたのクラスBは、この正しい例と同様に、入れ子になったクラスとして表示されているので気づき誤りがない:次に
class A
{
public:
A() {}
~A() {}
void do_something();
class B
{
public:
B() {}
~B() {}
void do_something_other();
};
};
、それはのために不可能ですコンパイラはあなたが何をしたいか、どのクラスがネストされているかを知っています。
もちろん、間違いがあります。少なくとも、閉じ括弧の数。しかし、おそらくあなたのコードの一部がクラスの記述の中で禁止されているときです。エラーがverry strangeになるのはこのためです。
3
は、はい、それが起こる素晴らしい:)
乾杯でしょう。インクルードファイルは単なるテキストであり、有効な自己完結型コードを含む必要はありません。コピーペーストとして#include
を考えることができます。あなたは持っている可能性があり
main.cppに
#include "a.h"
#include "b.h"
ああ
int main() {
あなたの場合BH
return 0;
}
+2
とタイプしている間に括弧が紛失していることを示すIDEを使用すると、メモを追加することができますが、これは完全に合法ですが推奨されません(コードの難読化コンテストに参加している場合を除く) – user463035818
関連する問題
- 1. Perl正規表現の末尾に括弧がありません。
- 2. 中括弧PHPクラス
- 3. 中括弧への接尾辞 - 括弧
- 4. else文の中括弧はありませんか?
- 5. 中括弧がない場合、プログラムはどうなりますか?
- 6. スカラ:クラスが定義されていない場合、既定のクラスはありますか?
- 7. 大きなPHPファイルに括弧がありませんか?
- 8. クラス宣言後のセミコロン中括弧
- 9. 変数の周りに中括弧をラップする場合
- 10. なぜc#のmainメソッドは常にクラスの中に置かれますが、C++にはありません
- 11. RCTMapクラス用に定義されたビューマネージャがありません
- 12. Oracleテーブルの作成に右括弧がありません
- 13. 特定のクラスがある場合とない場合のデザインインターフェイス
- 14. 単一クラスにはクラス再定義エラーがあります
- 15. 中括弧場合は、次のコードに配列
- 16. CLOSメソッド定義では、スペシャライザーはクラスのリストであり、単一のクラスではありませんか?
- 17. 中括弧に
- 18. データ定義に型または記憶域クラスがありません
- 19. OSX悪意のあるターミナルコマンド(など、コロン、括弧、中括弧、apersand、)
- 20. C#中括弧の問題
- 21. ヘッダーファイルに空のクラス宣言がありますか?
- 22. 'クラス'に 'メソッド'の定義が含まれていません
- 23. なぜ 'object'クラスにユーザ設定属性がありません
- 24. ヘッダーファイルのクラス宣言についてC++
- 25. Node.jsクラスを拡張するときに中括弧
- 26. クラスがポインタベースになる場合、内部オブジェクトはポインタベースである必要はありませんか?
- 27. カーソルがvs2010の括弧内にある場合のヒントのようなツールヒント。
- 28. Oracle SQL - Strange 'ORA-00907右括弧がありません'エラー
- 29. stylecop:角括弧内の中括弧
- 30. 中括弧内のテキストを解析しますが、内括弧で停止しませんか?
このヘッダーファイルは一部のソースファイルに含まれていたため、実際のコンパイルが行われる前に完了しています。閉じ括弧が見つからない場合は、クラス定義が終了するはずの場所をコンパイラが知る方法はありません(原理的には、互いに多くのファイルにまたがる可能性があります)。ヒント: – user463035818