1. ホーム
  2. c++

[解決済み] ヘッダーファイルとライブラリの違いは何ですか?

2023-07-05 18:13:51

質問

コンパイラがどのように動作するのか理解するのに苦労していることがあります。私は多くの困難を抱えていますが、特にヘッダーとライブラリが混同され続けています。もし誰かが物事を少し明確にすることができれば、それは素晴らしいことです。

どのように解決するのですか?

このように両者を考えてみましょう(免責事項:これは本当にハイレベルな例え話です ;) .

  • ヘッダ は電話番号で、一方
  • ...は ライブラリ は、実際にそこに到達できる人なのです

それは、"interface" と "implementation" の根本的な違いである。 インターフェイス (ヘッダ) が教えてくれます。 どのように がある機能を(どのように動作するかを知らずに)呼び出すことを指示するのに対し 実装 (ライブラリ)は実際の機能です。

注:この概念は非常に基本的なもので、柔軟性をもたらします:異なるライブラリに対して同じヘッダを持つことができ(つまり、機能はまったく同じ方法で呼び出されます)、それぞれのライブラリは を実装することができます。 を実装することができます。同じインターフェイスを維持することで、を変更せずにライブラリを置き換えることができます。 を変更することなく、ライブラリを交換することができます。 のコードを変更することなく、ライブラリを交換することができます。

そして:呼び出し元のコードを壊すことなく、ライブラリの実装を変更することができます!