C++の#includeディレクティブとヘッダファイルの役割を完全解説!初心者でもわかる仕組み
生徒
「C++のサンプルコードを見ると、最初に #include って書いてありますけど、これは何をしているんですか?」
先生
「それは、別のファイルに書かれている便利な情報を、今のプログラムに取り込むための命令です。」
生徒
「自分では何も書いていないのに、どうして必要なんですか?」
先生
「理由があります。C++では、使う道具を事前に宣言しておく決まりがあるんです。」
1. #includeディレクティブとは
#include は、C++で使われるディレクティブと呼ばれる特別な命令です。
ディレクティブとは、プログラムが実行される前に処理される指示書のようなものです。
#include の役割は、とてもシンプルです。
別のファイルの内容を、その場所に丸ごと貼り付けるイメージです。
料理に例えると、レシピ本から必要なページをコピーして手元に置くような感覚です。
2. ヘッダファイルとは何か
ヘッダファイルとは、プログラムで使える機能の説明書のような存在です。 関数や変数、道具の名前などがまとめて書かれています。
C++では、ヘッダファイルは .h や .hpp という拡張子を持っています。
標準ライブラリのヘッダファイルには、すでに多くの便利な機能が用意されています。
ヘッダファイルを読み込まないと、その中に書かれた機能は使えません。
3. iostreamヘッダファイルの役割
C++のHello Worldで必ず登場するのが、#include <iostream> です。
この iostream は、入出力を扱うためのヘッダファイルです。
std::cout や std::endl などは、
この iostream に定義されています。
もし #include <iostream> を書かずに使おうとすると、
コンパイラは「その道具を知らない」とエラーを出します。
4. 山かっことダブルクォーテーションの違い
#include には、二つの書き方があります。
ひとつは < >、もうひとつは " " です。
< > は、C++が最初から用意している標準ヘッダファイルを読み込みます。
一方、" " は、自分で作ったファイルを読み込むときに使います。
初心者のうちは、標準ライブラリである <iostream> を使う場面がほとんどです。
5. #includeはいつ処理されるのか
#include は、プログラムが動く前に処理されます。
この段階を前処理と呼びます。
前処理では、#include の場所にヘッダファイルの中身が展開されます。
その後で、コンパイルという作業が行われます。
そのため、#include は実行命令ではなく、準備の命令だと考えると理解しやすくなります。
6. #includeを書かないと起きること
必要なヘッダファイルを書かないと、コンパイルエラーが発生します。 これは、プログラムが使おうとしている道具の説明が見つからないためです。
例えるなら、説明書を読まずに家電を操作しようとして、 ボタンの意味が分からず止まってしまう状態です。
C++では、使うものは必ず事前に宣言するという考え方が、とても大切です。
7. #includeとC++学習の基礎
#include とヘッダファイルの仕組みを理解すると、
なぜ最初に決まった形のコードを書くのかが見えてきます。
C++は、自由度が高い分、ルールもしっかりしています。
その入口が、#include とヘッダファイルです。
Hello Worldの段階でここを押さえておくと、 その後の学習がスムーズになります。