スポンサーリンク

名前空間の使い方

名前空間を使うことで関数名の衝突を避けて、効果的に管理できます。

下記のように名前空間の定義をします。

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

スポンサーリンク