C / C ++プロジェクト間の.hファイルと.incファイルの違い



H Inc Files Difference Between C C Project



元の質問: cの.hファイルと.incファイルの違い

C / C ++の標準的な方法は、.hファイルに記述された関数である情報クラスを宣言することです。達成する.cファイル書き込みクラス、関数の実現、変数の定義など。ただし、テンプレートの場合、それはクラスでも関数でもありませんが、何かのクラスまたは関数のセットを生成できます。コードを生成するためのコンパイラー(コンパイラー)テンプレートでは、ステートメント(宣言)と定義(定義)を確認する必要があるため、内部の.hに含めないでください。



定義を分離してステートメントを作成するために、内部ドキュメント、つまり.incファイルで下痢の定義を作成し、最後の.hファイルに含めます。もちろん、.inc形式に加えて、.inc.imp.impl.tppなどの他の多くの表現がある場合があります。

英語の元の答え



.inc多くの場合、ファイルはテンプレート化されたクラスおよび関数に関連付けられています。

標準のクラスと関数は.hで宣言されますファイルを作成し、.cppで定義しますファイル。ただし、テンプレートはクラスでも関数でもありませんが、クラスまたは関数のファミリーを生成するために使用されるパターンです。コンパイラーがテンプレートのコードを生成するには、宣言と定義の両方を確認する必要があるため、両方を.hに含める必要があります。ファイル。

宣言と定義を分離しておくために、定義は独自のファイルに配置され、.hの最後に含まれます。ファイル。このファイルには、多くの可能なファイル拡張子.inc.imp.impl.tppなどのいずれかが含まれます。



宣言の例:

// Foo.h #ifndef FOO_H #define FOO_H template class Foo { public: Foo() void DoSomething(T x) private: T x } #include 'Foo.inc' #endif // FOO_H

定義例:

// Foo.inc #include 'Foo.h' template Foo::Foo() { // ... } template void Foo::DoSomething(T x) { // ... }