[解決済み] ヘッダーとC++ファイルをインクルードすることの違いは何ですか?
質問
ヘッダー(.hファイル)とC++ファイル(.cppファイル)をインクルードすることの違いは何ですか?クラスを作成すると、.hファイルと.cppファイルが作成されます。このクラスのオブジェクトを使用したい場合、これらのファイルを両方ともインクルードするべきかどうか?また、どのような場合に.cppファイルをインクルードすべきでしょうか?
どのように解決するのですか?
ファイルの名前とその中身は、完全に慣習です。もしあなたが人々を混乱させることが好きなら、ヘッダーファイルを次のように呼ぶことができます。
something.b
とソースファイル
something.r
- この場合、もちろんほとんどの人にとっては何の役にも立たないでしょうし、あなたのファイルにはC++のソースではなくR言語が入っていると思う人もいるかもしれません。というファイルにCやC++が含まれていることをエディタが理解することはないでしょう。
.b
- といったビルドツールがあります。
Make
,
scons
,
CMake
などは、どのようにコンパイルすればいいのか、言われなければわからないでしょう。[コンパイラはファイル名の拡張子も見て、C++としてコンパイルするのかCとしてコンパイルするのか判断します。]
重要なのは、ファイルの名前ではなく、実際に何が入っているかということです。ヘッダー(ほとんどの人が
something.h
例外として、ヘッダーファイルはプロジェクト全体で1回以上含まれることを意図していないものもあります。
version.h
これは、現在のバージョン番号を記述する文字列を宣言しています]。
ソースファイル(従来は
something.cpp
は、通常、コンパイラに直接渡してコンパイルさせるべきであり
#include "something.cpp"
. しかし、それを決定するのはCONTENTであり、ファイル名ではありません。そのような使い方をすると、ファイル名が悪いだけです。
要約すると、コンパイラは渡されたソースファイルを読み込んで、その後に
#include
を、あたかも元のソースファイルに貼り付けたかのように、コンパイルするコードの流れに追加します。コンパイラは、コンパイルが全体として "ok" である限り、ファイル名が何であるか、どこから来たか、その内容が何であるかは気にしないのです。
関連
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] require, include, require_once, include_onceの違い?
-
[解決済み] constexpr` と `const` の相違点
-
[解決済み] Rubyのincludeとrequireの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された