スポンサーリンク
名前空間の使い方
名前空間を使うことで関数名の衝突を避けて、効果的に管理できます。
下記のように名前空間の定義をします。
namespace 名前空間名{ //関数や変数の定義 }
実際に名前空間で定義した関数を呼び出す場合には、スコープ解決演算子を関数の前に付けます。
名前空間名::関数名();
スポンサーリンク
サンプルコード
下記がサンプルコードになります。
name001とname002の名前空間を定義して、それぞれにoutHello()を定義しています。
outHello()を呼び出す場合には、先頭にスコープ解決演算子を付けて呼び出します。
$ cat sample.cpp #include <iostream> namespace name001{ void outHello(){ std::cout << "hello name001" << std::endl; } void outHello2times(){ outHello(); //同じ名前空間内であれば、先頭の名前空間は不要 outHello(); } } namespace name002{ void outHello(){ std::cout << "hello name002" << std::endl; } } int main(){ std::cout << "hello std" << std::endl; name001::outHello(); //name001のoutHello()を呼び出す name002::outHello(); //name002のoutHello()を呼び出す //outHello(); コンパイルエラーとなる name001::outHello2times(); }
下記が実行結果になります。
$ g++ -o sample sample.cpp $ ./sample hello std hello name001 hello name002 hello name001 hello name001
スポンサーリンク