c++ | namespace 命名空间


一、命名冲突

在这里插入图片描述
在这里插入图片描述
因为我们包含了<stdlib.h>头文件,这个头文件里包含rand这个函数,所以这时编译器不知道你是要打印全局变量rand还是rand函数。
在这里插入图片描述
我们定义了一个命名空间A,此时编译通过了,这里输出的rand函数的地址。

二、namespace命名空间

1.命名空间可以存放变量、结构体、类、函数

namespace B
{
    
    
	int a = 10;
	void test()
	{
    
    
		cout << "hello world" << endl;
	}

	struct S {
    
    };
	class C {
    
    };
}

2.命名空间必须声明在全局作用域

在这里插入图片描述

我们在局部作用域中定义一个命名空间C报错了。

3.命名空间可以嵌套命名空间

namespace D
{
    
    
	int a = 10;
	namespace E
	{
    
    
		int a = 10;
	}
}

4.相同名字命名空间会进行合并

在这里插入图片描述

4.命名空间可以是匿名的

在这里插入图片描述

4.命名空间可以起别名

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/2301_77412625/article/details/130134093
今日推荐