1.namespace的作用
命名空间namespace是ANSI C++引入的可以由用户命名的作用域,用来处理程序中常见的重名冲突,不同的命名空间中可以存在名字相同的标识符而不会相互干扰,防止名字污染。在C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。
2.程序例子
#include <iostream>
using namespace std;
namespace one
{
int a = 10;
}
namespace two
{
int a = 15;
}
int main()
{
cout<<"one a = "<<one::a<<endl; //10
cout<<"two a = "<<two::a<<endl; //15
using namespace one;
using namespace two;
//cout<<"a = "<<a<<endl; //'a' : ambiguous symbol,编译器不知道哪个名字空间里的
int a = 20;
cout<<"a = "<<a<<endl; //20
return 0;
}
3.程序运行结果