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