- # C言語/C++入門 > 関数と変数のスコープ
名前空間・namespace
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
namespace
C++では、名前空間(namespace)を定義でき、これにより大きなプログラムなどで、変数名の重複を避けることができます。
スポンサーリンク
#include <iostream> namespace family { char father[] = "Tom"; char mother[] = "Kelly"; char son[] = "Bob"; // 名前空間をネスト namespace friends { char friend_male[] = "Devid"; char friend_female[] = "Silvia"; } } int main() { std::cout << family::father << "\n"; std::cout << family::mother << "\n"; std::cout << family::son << "\n"; std::cout << family::friends::friend_male << "\n"; std::cout << family::friends::friend_female << "\n"; }
namespaceで定義した名前空間内の変数には、namespace::varとすることでアクセスできます。
これは、実は、今までも標準で用いていた「std::cout」も同じ実装となっています。
また、名前空間は、ネスとして定義することができ、アクセスにはnamespace名を「::」でつないでアクセスします。
実行結果。
Tom Kelly Bob Devid Silvia
名前空間と関数
namespace math { int square(const int i) { return (i * i); } } math::square(3);
名前空間は、変数だけでなく関数にも作用します。
グローバル名前空間
::global_var = 22;
このように、空の名前空間を割り当てて変数宣言と代入を行うと、すべての名前空間の外側で宣言されている変数globalに値「22」を代入します。
ファイル固有名前空間
namespace {
・・・
}
namespace に続いて、名前空間名を書かず、名前のない名前空間を宣言すると、名前空間に含まれているすべての宣言がファイル固有の名前空間に配置される。
スポンサーリンク
>> 次の記事 : using文・using namespace
<< 前の記事 : 変数の記憶クラス
- - 関連記事 -
- 再帰関数
- 関数の引数型/値呼び出し(値渡し)・参照呼出し(参照渡し)・配列
- インライン関数・inline
- デフォルト引数・定義された引数を使用しない関数
- 関数のオーバーロード
- 参照型の戻り値で関数定義・参照戻し
- 参照型の引数で関数定義
- const宣言の引数を持つ関数
- 引数のない関数(void)・voidの戻り値
- 関数の定義
- using文・using namespace
- 変数の記憶クラス
- グローバル変数とローカル変数
スポンサーリンク