28項 グローバルな名前空間は分割しよう

グローバルな名前空間は分割しよう


namespaceを使い、名前の衝突を避けることができます。
namespaceは、従来のヘッダファイルに比べ、名前の衝突を避けやすくなっています。
複数のヘッダファイルで同じ名前を宣言すると、コンパイルエラーが起こりました。
しかし、namespaceなら、複数の名前空間から同じ名前をインポートしていても、名前空間を指定することで衝突を避けられます。

namespace sk1
{
	const double VERSION = 1.0;
}

namespace sk2
{
	const double VERSION = 2.0;
}

int main()
{
	using namespace sk1;
	using namespace sk2;

	double d0 = VERSION; // 名前空間の指定がないので、これはだめだが
	double d1 = sk1::VERSION; // 指定すればOK
	double d2 = sk2::VERSION; // これもOK