名前空間の使い方
名前空間を使うことで関数名の衝突を避けて、効果的に管理できます。
下記のように名前空間の定義をします。
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
