3

重複の可能性:
前方宣言の目的は何ですか?
前方宣言と含める

#include *.hヘッダーファイルとcppファイルの両方にファイルが含まれていることに少し混乱しています。一部の.hファイルがヘッダーファイルに含まれ、一部が対応するcppファイルに含まれていることがわかります。必要なすべての.hファイルをヘッダーファイルにインクルードする必要があると思います。したがって、それらがcppファイルにインクルードされている理由はわかりません。これには特別な理由がありますか?

また、いくつかの必要なクラスが。を使用してヘッダーファイルにインクルードされていることがわかりますClass ClassName;ClassName.hこれは、ヘッダーファイルにインクルードする だけとどう違うのですか?

4

1 に答える 1

2

最初の段落では、同じ .h ファイルがクラスのヘッダー ファイルとクラスの .cpp ファイルに含まれていると言っているようですか? 定義上、他のファイルを含むファイルを含めると、それらの他のファイルも含まれるため、これは単なる見落としです。.cpp ファイル内の重複したインクルードを削除できます。

2 番目の段落では、クラスの前方宣言が表示されています。ヘッダーにクラスの定義が必要ない場合は、前方宣言することをお勧めします。このように、ヘッダーを含むファイルはクラスの定義に依存しません。これにより、ファイル間の依存関係が削減されます。前方宣言のみが必要な例は、クラス自体ではなく、クラスへのポインターであるメンバー変数がクラスに含まれている場合です。

于 2012-08-09T02:03:05.373 に答える