C++:namespace命名空间详解

C++:namespace命名空间详解

1、命名空间的主要用途:解决命名冲突。 

#include 
using namespace std;

// 定义两个全局变量var01、var02
int var01 = 1; 
int var02 = 2;

// 定义命名空间A
namespace A
{
    int var01 = 10;
    int var02 = 20;
}

定义命名空间B
namespace B
{
    int var01 = 100;
    int var02 = 200;
}

void test01(void)
{
    cout<<"全局变量var01 = "<#include 
using namespace std;

namespace A
{
	int x = 1;
    // 在A命名空间下定义函数func1
	void func1()
	{
		cout<<"namespace A::func1"<

3、命名空间须声明在全局作用域下

4、命名空间可以嵌套命名空间,使用A::B::y

namespace A
{
    int var01 = 1;
    // 在命名空间A下再声明命名空间B
	namespace B
	{
		int var02 = 4;
	 }
}

int main()
{
    cout<<"A::var01 = "<#include 
using namespace std;

// 定义命名空间A
namespace A
{
    int var01 = 10;
    int var02 = 20;
}

定义命名空间B
namespace B
{
    int var01 = 100;
    int var02 = 200;
}

// 在A命名空间中追加新变量var03.此时A空间中包含三个变量var01、var02、var03
namespace A
{
    int var03 = 30;
}

int main()
{
    cout<<"A::var01 = "<// 注:该程序是错误的。匿名命名空间依旧作用于默认命名空间,因此变量var01重复定义了。

#include 
using namespace std;

int var01 = 1;
namespace
{
	int var01 = 10;
}

int main()
{
	cout<<"::var01 = "<#include 
using namespace std;
// 定义的命名空间名过长,使用不方便。
namespace ABCDEFGHIJKDFJKDFJIDDJFJDKJDKJDKFJKDJDKFEJDKDJFI
{
	int var01 = 10;
}

int main()
{   
    // 对命名空间进行重命名
    namespace A = ABCDEFGHIJKDFJKDFJIDDJFJDKJDKJDKFJKDJDKFEJDKDJFI;
	cout<<"ABCDEFGHIJKDFJKDFJIDDJFJDKJDKJDKFJKDJDKFEJDKDJFI::var01 = "<

8、总结

        命名空间主要用于避免命名冲突。但在实际开发中,很少需要程序员自己定义命名空间的。

你可能感兴趣的:(C++入门,c++)