プログラムが大きくなってくると、同じ名前の関数名やクラス名が既に使用されていないか気になりますよね?

そんなときに使用するのがnamespaceです。

namespaceで囲った部分は名前が付けられて、外からはその名前を使わないと呼び出せなくなるのです。



例:


namespace nana

{


void test(){ cout << "###" << endl; };


}


//呼出し

void main()

{

//頭に名前(この場合nana::)を付けないと呼べません。

nana::test();


}




これを使用すれば、同じtest()という関数名を安心して使用できますね。

また、意味のあるグループで名前空間を作成してまとめておけば、大きなプログラムでも分かりやすくなりますね。





【名前空間の中から外の関数を呼ぶ場合】

そうすると、nanaの中から外にあるtest()を呼びたい場合はどうするのでしょう?


例:


void test(){ cout << "qqq" << endl; };


namespace nana{


//内部では上のtest()を呼び出したい。::をはずすと、自分自身を無限呼出しすることになります。

void test(){ ::test(); };


}



名前空間の外の関数を呼び出すときは、上記のようにいきなり::関数名で呼び出します。



名前空間を使用すると、関数名やクラス名の衝突を防ぐことができると共に、プログラムのまとまりが分かりやすくなります。

うまく使っていきましょう!



参考:

名前空間の解説