C++定義ネーミングスペース、役割ドメイン

2359 ワード

C++役割ドメイン:1、ファイル2、関数内の3種類、構造体などの複合文ネーミングスペース:役割ドメインに名前を付ける
ネーミングスペース分類:システムネーミングスペース:stdカスタム意味のネーミングスペース:
 
まずtestを書きますcpp .
#include
using namespace std;

int a =200;

void fun()
{
	cout<

同じパスでmainをもう一つ書きます.cpp実行時にエラーが発生します.エラー:extern int aがあるため、aを繰り返し定義します.宣言変数は外部から来る.
#include
using namespace std;

//         
extern int a;
int a=100;
int main()
{
	int a=300;
	cout<

同じ経路でnamespaceを書きますcpp、直接実行するとcoutとendlの役割ドメインが宣言されていないと誤認します. 
#include
int main()
{
	cout<

 
1ネーミングスペースを使用する:1、役割ドメインを介してスペース名::スペースメンバー2、ネーミングスペースを宣言する:using namespaceネーミングスペース;
std::cout<を加えると
#include

int main()
{
	std::cout<

USing namespace stdを追加すると優先的にstdで検索します
#include
using namespace std;
int main()
{
	cout<

 
2定義空間:namespaceネーミング空間{1関数2構造体3定義クラス4、定義変数、オブジェクト5、ネストネーミング空間}
以下に、2つのネーミング空間chhとlfを定義し、まず、局所変数優先が選択されるため、a=300が印刷される.int a=300を注釈を外すと、「a」はこの役割ドメインで宣言されていないと間違って報告されます.
#include
using namespace std;

namespace chh
{
	int a=100;
}

namespace lf
{
	int a=200;
}

int main()
{
	//int a=300;
	cout<

aに役割ドメインを追加すると、エラーが報告されず、chh空間の中のaが印刷され、100が印刷される.
#include
using namespace std;

namespace chh
{
	int a=100;
}

namespace lf
{
	int a=200;
}

int main()
{
	//int a=300;
	cout<<:a/>

したがって、chhまたはlfを使用するネーミングスペースを直接以下に宣言することができ、aに役割ドメインを追加する必要はありません.
#include
using namespace std;

namespace chh
{
	int a=100;
}

namespace lf
{
	int a=200;
}

using namespace chh;

int main()
{
	//int a=300;
	cout<

ネーミングスペースはネストして使用することもでき、groupのbが印刷されます.
#include
using namespace std;

namespace group
{
	namespace one
	{
		int b=3;
	}
	namespace two
	{
		int b=2;
	}
	int b=1;
}

int main()
{
	cout<<:b/>

groupのoneのネーミングスペースも引用できますが、一般的には少ないです.
#include
using namespace std;

namespace group
{
	namespace one
	{
		int b=3;
	}
	namespace two
	{
		int b=2;
	}
	int b=1;
}

int main()
{
	cout<<:one::b/>