namespace //这里的命名空间没有具体的名字,可以定义没有名字的命名空间,<span style="color:#FF0000;">注意</span>
{
int Function
{;}
}
#include <iostream>
#include "MyNameSpace.h"
#include "YourNameSpace.h"
using namespace std;
int iNum=10000;//全局变量
namespace MyNameSpace
{
int iNum=2000;
int Add(int iNum)
{
//cout<<"MyNameSpace中iNum的值为"<<iNum<<endl;
iNum=iNum+iNum;//访问Add函数中的局部变量
return iNum;
}
}
namespace YourNameSpace
{
int iNum=300000;
int Add(int iNum)
{
iNum=::iNum+iNum;//::iNum访问全局变量iNum
return iNum;
}
}
void main(void)
{
cout<<MyNameSpace::Add(1)+::iNum<<endl;//使用全局变量iNum
cout<<MyNameSpace::Add(1)+iNum<<endl;//使用全局变量iNum,全局变量可以省略::
namespace N2=YourNameSpace;//定义YourNameSpace的别名
cout<<N2::Add(1)+N2::iNum<<endl;
using namespace YourNameSpace;
cout<<Add(1)+MyNameSpace::iNum<<endl;//由于有全局变量iNum所以要使用作用域限定符
//而无全局变量Add(),所以这里无需限定,系统知道调用的是YourNameSpace空间中的Add()
// cout<<iNum<<endl;该语句编译出现错误,iNum存在二义性
}