www.gusucode.com > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序 > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序/code/C++例题程序/第6章/s6_20/smain6_20.cpp

    //Download by http://www.NewXing.com
//文件名:smain6_19.cpp
//命名空间的使用

#include <iostream>
using namespace std;

int iNum = 1000;			//全局变量

// MyName.h
namespace MyName			//定义命名空间MyName
{
	int  iNum = 200;		//MyName空间中的变量
	int Add(int iNum)		//Myname空间中的Add
	{
		iNum = iNum + iNum;	//访问的是Add内的局部变量
		return iNum;
	}
} 

// YourName.h
namespace YourName			//定义命名空间YourName
{
	int  iNum = 30000;		//YourName空间中的变量
	int Add(int iNum)		//YourName空间中的Add
	{
		iNum = ::iNum + iNum;	//::iNum访问全局iNum
		return iNum;
	}
}

//测试程序
void main(void)
{

	cout << MyName::Add(10)+::iNum << endl;	//使用全局iNum
	cout << MyName::Add(10)+iNum << endl;	//使用全局iNum
	
	namespace N2 = YourName;
	cout << N2::Add(10)+N2::iNum << endl;	//表示使用的是YourName命名空间

	using namespace YourName;				//使用using关键字。
	cout << Add(10)+MyName::iNum << endl;	//由于有全局iNum,所以要使用限制,
					//而无全局Add,所以这里无需限定,系统知道调用YourName空间中的Add

	//cout << MyName::Add(10)+iNum << endl;	//该语句编译错误,iNum出现二义性
}