.HH オプション番号
拡張子が .hh のファイルは、変数、定数、および関数の宣言を含む C++ ヘッダー ファイルです。これらの宣言は、対応する C++ 実装ファイルによって使用され、通常はユーザー ロジックの実際の実装を含む .cpp ファイルとして保存されます。 .hh ヘッダー ファイルは、#include
ディレクティブを使用して実装 CPP ファイルで参照されます。 C++ プロジェクトに可能な限り多くのヘッダー ファイルを追加して、プロジェクト レベルの宣言を含めることができます。
.HH ファイル形式
.hh ファイルは、ヘッダー ファイルの定義規則に従って作成されるプレーン テキスト ファイルです。 .hh ファイルで宣言される最も一般的な情報には、次のものが含まれます。
Variables
- オブジェクト指向プログラミング (OOP) の場合、クラス ヘッダー ファイルには、実装ソース コード ファイル全体でアクセス可能なすべてのクラス レベル変数の定義が含まれます。
メソッド宣言
- すべてのメソッド宣言は、複数の実装ファイルからアクセスできるように .h ヘッダー ファイルに含まれています。
非インライン関数定義
- ヘッダー ファイルには、非インライン メソッドの定義を含めることもできます。
メッセージ マップ
- MFC ソース コード実装の場合、ヘッダー ファイルにもメッセージ マップを含めることができます。このような場合、メッセージ マップは、ボタン、チェックボックス、ラジオ ボタンなどの UI 要素にリンクされている機能の実装にリンクされています。
.H ファイルと .HH ファイルの違い
どうやら、C または C++ など、それぞれの言語でこれらを使用する推奨される方法以外に、.h ヘッダー ファイルと .hh ヘッダー ファイルの間にそのような違いはありません。これらの言語に従ってヘッダー ファイルに名前を付けると、C と C++ の実装が混在する可能性がある大規模なプロジェクトでこれらを区別するのに役立ちます。
さらに、ヘッダーが拡張子で区切られている場合、エディターはそれぞれに適切なフォーマットを自動的に適用できます。
全体として、これら 2 つのファイル形式の違いは害にはなりませんが、有利になるため、C と C++ の違いに従うことをお勧めします。
ヘッダーガード
ヘッダー ファイルは、他のヘッダー ファイルを追加した結果、同じファイルに複数の宣言が含まれる複雑なエラーを発生させる可能性があります。この重複した定義により、コンパイラ エラーが発生します。この問題は、以下に示す条件付きコンパイル ディレクティブであるヘッダー ガードと呼ばれるメカニズムによって回避できます。
#ifndef ANY_UNIQUE_NAME_HERE_HPP
#define ANY_UNIQUE_NAME_HERE_HPP
// your declarations (and certain types of definitions) here
#endif
このヘッダーを使用して、プリプロセッサは ANY_UNIQUE_NAME_HERE_HPP
が既に定義されているかどうかを確認します。ヘッダーが同じファイルに繰り返し含まれている場合、ヘッダーの内容は無視されます。