在c语言中只有一个全局作用域
c语言中所有的全局标识符共享一个作用域
标识符之间可能发生冲突
c++中提出了命名空间的概念
命名空间将全局作用域分成不同的部分
不同命名空间中的标识符可以同名而不会发生冲突
命名空间可以相互嵌套
全局作用域也叫默认命名空间
c++命名空间的定义
namespace name{
}
#include"iostream"
using namespace std;
//1.定义命名空间
namespace namespaceA {
int a = 10;
}
namespace namespaceB {
int a = 20;
}
namespace namespaceC {
int a = 30;
namespace namespaceD {
struct Teacher
{
string name;
int age;
};
}
}
int main()
{
cout << "新年快乐"<<endl;
//使用命名空间
using namespace namespaceA;
using namespace namespaceB;
cout << namespaceA:: a << endl;
cout << namespaceB::a << endl;
//定义结构体变量
namespaceC::namespaceD::Teacher t1;
t1.name = "老婆";
t1.age = 22;
system("pause");
}