見出し画像

プログラミング学習記録【20日目】/ includeディレクティブ・名前空間

4.01.includeディレクティブ

ソースファイル
ソースコードを記述したコンピュータ上のファイルのこと

ライブラリ
便利な関数や構造体を欠いたソースファイルなどをまとめたものをライブラリと呼ぶ。
STLもライブラリの一つ。C++の一部として用意されているため、STLは標準ライブラリと呼ばれる。

#include <bits/stdc++.h>の意味
C++の関数呼び出しや四則演算などの機能は言語機能だが、変数の値を出力するcoutやendlはSTLによって提供されている機能。
こういったライブラリを利用するためには、プログラム中でライブラリを利用することを明示する必要がある。その宣言が、#include <bits/stdc++.h>という一文。

includeディレクティブ
C++には #include <ファイル>という記法で、指定したファイルの内容をこの命令を欠いた部分に展開する、といった機能を持つ。
このincludeの機能を用いることにより、別ファイルに記述したプログラムを組み込むことができる。
ある程度規模の大きいプログラムなどは、ソースファイルを複数に分割して開発を行うことで、まとまりがよく開発を行うことができる。
また、関連するコードごとにまとめたりすることで、別のプログラムを作る際に再利用しやすくなる。
このような場合、各ソースファイルについて、対応するヘッダファイルを作り、ヘッダファイルをインクルードする、といった手段を用いるほうがより一般的。

ヘッダファイル
プログラムを複数のソースファイルに分けて書く場合に用いる、主に関数のプロトタイプ宣言や構造体の宣言などをまとめたファイル。慣習的に、ファイル名.hやファイル名.hppという名前のファイル名にすることが多い。

4.02.名前空間

名前空間
関数や構造体、グローバル変数の名前の衝突を避けるために、名前空間を定義することができる。名前空間を分けることで、同名の関数を定義できるようになる。

namespace 空間名
{
   関数
   {
       処理
   }
}

関数を呼び出す際には、空間名 : : 関数 というように、名前空間を明示する。
名前空間の内部では、関数や構造体、グローバル変数などの定義等が行える。
スコープ内にて何度も同じ名前空間を用いる場合、

   using namespace 名前空間名;

と最初に宣言しておくことで、そのスコープ内での名前空間の指定を省略することができる。
つまり、いつも最初に記述していた

   using namespace std;

は、stdという名前空間を全体で用いる、という意味になる。

以上!

この記事が気に入ったらサポートをしてみませんか?