カテゴリ: C++ 更新日: 2025/12/24

C++の#includeディレクティブとヘッダファイルの役割を完全解説!初心者でもわかる仕組み

#includeディレクティブとヘッダファイルの役割
#includeディレクティブとヘッダファイルの役割

先生と生徒の会話形式で理解しよう

生徒

「C++のサンプルコードを見ると、最初に #include って書いてありますけど、これは何をしているんですか?」

先生

「それは、別のファイルに書かれている便利な情報を、今のプログラムに取り込むための命令です。」

生徒

「自分では何も書いていないのに、どうして必要なんですか?」

先生

「理由があります。C++では、使う道具を事前に宣言しておく決まりがあるんです。」

1. #includeディレクティブとは

1. #includeディレクティブとは
1. #includeディレクティブとは

#include は、C++で使われるディレクティブと呼ばれる特別な命令です。 ディレクティブとは、プログラムが実行される前に処理される指示書のようなものです。

#include の役割は、とてもシンプルです。 別のファイルの内容を、その場所に丸ごと貼り付けるイメージです。

料理に例えると、レシピ本から必要なページをコピーして手元に置くような感覚です。

2. ヘッダファイルとは何か

2. ヘッダファイルとは何か
2. ヘッダファイルとは何か

ヘッダファイルとは、プログラムで使える機能の説明書のような存在です。 関数や変数、道具の名前などがまとめて書かれています。

C++では、ヘッダファイルは .h.hpp という拡張子を持っています。 標準ライブラリのヘッダファイルには、すでに多くの便利な機能が用意されています。

ヘッダファイルを読み込まないと、その中に書かれた機能は使えません。

3. iostreamヘッダファイルの役割

3. iostreamヘッダファイルの役割
3. iostreamヘッダファイルの役割

C++のHello Worldで必ず登場するのが、#include <iostream> です。 この iostream は、入出力を扱うためのヘッダファイルです。

std::coutstd::endl などは、 この iostream に定義されています。

もし #include <iostream> を書かずに使おうとすると、 コンパイラは「その道具を知らない」とエラーを出します。

4. 山かっことダブルクォーテーションの違い

4. 山かっことダブルクォーテーションの違い
4. 山かっことダブルクォーテーションの違い

#include には、二つの書き方があります。 ひとつは < >、もうひとつは " " です。

< > は、C++が最初から用意している標準ヘッダファイルを読み込みます。 一方、" " は、自分で作ったファイルを読み込むときに使います。

初心者のうちは、標準ライブラリである <iostream> を使う場面がほとんどです。

5. #includeはいつ処理されるのか

5. #includeはいつ処理されるのか
5. #includeはいつ処理されるのか

#include は、プログラムが動く前に処理されます。 この段階を前処理と呼びます。

前処理では、#include の場所にヘッダファイルの中身が展開されます。 その後で、コンパイルという作業が行われます。

そのため、#include は実行命令ではなく、準備の命令だと考えると理解しやすくなります。

6. #includeを書かないと起きること

6. #includeを書かないと起きること
6. #includeを書かないと起きること

必要なヘッダファイルを書かないと、コンパイルエラーが発生します。 これは、プログラムが使おうとしている道具の説明が見つからないためです。

例えるなら、説明書を読まずに家電を操作しようとして、 ボタンの意味が分からず止まってしまう状態です。

C++では、使うものは必ず事前に宣言するという考え方が、とても大切です。

7. #includeとC++学習の基礎

7. #includeとC++学習の基礎
7. #includeとC++学習の基礎

#include とヘッダファイルの仕組みを理解すると、 なぜ最初に決まった形のコードを書くのかが見えてきます。

C++は、自由度が高い分、ルールもしっかりしています。 その入口が、#include とヘッダファイルです。

Hello Worldの段階でここを押さえておくと、 その後の学習がスムーズになります。

カテゴリの一覧へ
新着記事
New1
C++
C++のメンバアクセス演算子を完全解説!初心者でもわかる . → :: の使い方まとめ
New2
Rust
Rustの文字列を極める!&str(文字列スライス)の基本概念とString型との違い
New3
C++
C++のキャスト演算子を完全解説!dynamic_cast・static_cast・const_cast・reinterpret_castを初心者向けに説明
New4
C++
C++開発のIDE選びを完全ガイド!初心者でもわかるCLion・Eclipse CDT・Qt Creator比較
人気記事
No.1
Java&Spring記事人気No1
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.2
Java&Spring記事人気No2
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.3
Java&Spring記事人気No3
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.4
Java&Spring記事人気No4
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C++
C++リンカとコンパイラのオプション設定を完全ガイド!初心者にもわかる開発環境の基礎
No.8
Java&Spring記事人気No8
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作