C++/名前空間

出典: フリー教科書『ウィキブックス(Wikibooks)』
< C++

名前空間(Namespace)は、C++言語における重要な概念の1つです。名前空間は、特定の識別子(変数、関数、クラスなど)をグループ化して、衝突や競合を防ぐための方法を提供します。名前空間を使用することで、異なるライブラリやプロジェクトで同じ名前の識別子を定義しても、それらが衝突することなく安全に使用できます。

例えば、あるプロジェクトで print() という関数を定義し、別のプロジェクトでも同じ名前の print() 関数を定義した場合、それらが混在するとプログラムの動作が不安定になる可能性があります。名前空間を使用することで、このような問題を回避できます。

名前空間は、以下のようにして定義されます。

namespace MyNamespace {
    // 名前空間内での定義
    void print() {
        std::cout << "Hello from MyNamespace!" << std::endl;
    }
}

この例では、MyNamespace という名前の名前空間を定義し、その中に print() 関数を定義しています。名前空間内の識別子は、名前空間名::識別子 の形式でアクセスできます。

// 名前空間内の関数を使用する例
MyNamespace::print();

名前空間を使用することで、識別子の衝突を回避するだけでなく、コードの可読性も向上します。また、複数のライブラリやモジュールで同じ名前を使用する必要がある場合にも便利です。名前空間は、C++のモジュール化やライブラリ開発において非常に役立つ機能です。