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.程序运行结果
本文深入解析C++命名空间的作用,通过具体程序例子展示如何避免名字污染和处理重名冲突,实现不同作用域内的标识符共存。

551

被折叠的 条评论
为什么被折叠?



