2017C++講習会

名前空間

名前空間(namespace)とは

イメージ

 皆さんが何気なく使っている"std"は名前空間の名称です。一般的にC++に標準搭載されているライブラリの構文は"std"の中に入っています。
 名前空間の中に入っている構文は通常、構文の前に"名前::"を付けないといけません。(ex std::cout)

名前空間の作り方

namespace 名称{
  中に入れるものを書く。
}

 名前空間を使うことによって、その構文がどのような役割を持っているかまとめて区別することができます。
 ちなみに名前空間を名前空間で囲うこともできます。

using namespace std;

 分からないときに検索するとよくこの構文が出てきます。この構文の役割は"std"という名前空間を区別しなくてよくなることです。
 例えば、"std::cout"を"cout"だけで使えるようになります。
 これを使う利点としてはコードを書く量が短くなるため、競技プログラミングなどでよく使用されます。
 しかし、複数のライブラリを使う規模の大きい開発の場合には、多用しすぎることでコードが見づらくなってしまったり、別の名前空間内にある同じ構文にてどのように動くか分からなくなってしまうことがあるので、なるべく使わないように心がけましょう。