名前空間(namespace)
変数名やクラス名,関数名などの衝突を避ける仕組み.
名前のスコープをつくる.
namespace <name>{
...
}
名前を取り込む.
using namespace <name>; using <name>::<member>;
名前空間はファイルをわたって分割も可能.
FileA
namespace ringo{ int ringo; }
FileB
namespace ringo{ int apple; }
※名前空間は他のスコープの外に記述しなければならない.
ただし,名前空間のネストはできる.
無名名前空間(unnamed namespace)
そのファイル内からは修飾子無しで参照できる.
でも,そとからはできない.
ヘッダはstd名前空間に追加される.