文章目录
一、命名冲突
因为我们包含了<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;
}
}