.h および .cpp ファイルの組み込み: 違いを理解する
C 開発では、他のファイルをソース コードに組み込むことが重要です。ただし、ヘッダー (.h) ファイルと実装 (.cpp) ファイルを含めるには、ある程度の理解が必要です。
次のコードを考えてみましょう。
main.cpp #include <iostream> #include "foop.h" // Including the header file int main() { int x = 42; std::cout << x << std::endl; std::cout << foo(x) << std::endl; return 0; }
foop.h #ifndef FOOP_H #define FOOP_H int foo(int a); // Declaring the function prototype #endif
foop.cpp #include "foop.h" // Including the header file, just for safety int foo(int a) { return ++a; }
このコードmain.cpp と main.cpp の両方にヘッダー ファイル (「foop.h」) がインクルードされているため、正常にコンパイルされます。 foop.cpp.
なぜ .cpp ファイルをインクルードしないのでしょうか?
では、次の "#include "foop.h"" 行を置き換えるとどうなるかを見てみましょう。 main.cpp と "#include "foop.cpp":
main.cpp #include <iostream> #include "foop.cpp" // Including the implementation file
これにより、コンパイラが実行されますこの例では、関数 "foo" が 2 回 (main.cpp で 1 回、foop.cpp で 1 回) 定義されるためです。
結論
したがって、次の内容を含めることが重要です。コード定義の重複を避けるために、プライマリ ソース ファイルと、宣言された関数を使用する追加のソース ファイルの両方のヘッダ ファイル (.h) は、1 つのソース ファイルにのみ含める必要があります。
以上がC の .h ファイルをインクルードするように .cpp ファイルをインクルードできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。