[解決済み] ヘッダーファイルとライブラリの違いは何ですか?
2023-07-05 18:13:51
質問
コンパイラがどのように動作するのか理解するのに苦労していることがあります。私は多くの困難を抱えていますが、特にヘッダーとライブラリが混同され続けています。もし誰かが物事を少し明確にすることができれば、それは素晴らしいことです。
どのように解決するのですか?
このように両者を考えてみましょう(免責事項:これは本当にハイレベルな例え話です ;) .
- は ヘッダ は電話番号で、一方
- ...は ライブラリ は、実際にそこに到達できる人なのです
それは、"interface" と "implementation" の根本的な違いである。 インターフェイス (ヘッダ) が教えてくれます。 どのように がある機能を(どのように動作するかを知らずに)呼び出すことを指示するのに対し 実装 (ライブラリ)は実際の機能です。
注:この概念は非常に基本的なもので、柔軟性をもたらします:異なるライブラリに対して同じヘッダを持つことができ(つまり、機能はまったく同じ方法で呼び出されます)、それぞれのライブラリは を実装することができます。 を実装することができます。同じインターフェイスを維持することで、を変更せずにライブラリを置き換えることができます。 を変更することなく、ライブラリを交換することができます。 のコードを変更することなく、ライブラリを交換することができます。
そして:呼び出し元のコードを壊すことなく、ライブラリの実装を変更することができます!
関連
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] 私的相続、公的相続、保護相続の違いについて
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] g++とgccの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。