分类: C/C++
2009-08-21 10:55:37
#include <iostream>
#include <string>
using namespace std;
//using namespace编译指示,使在C++标准类库中定义的名字在本程序中可以使用
//否则,iostream,string 等c++标准类就不可见了,编译就会出错。
//两个在不同命名空间中定义的名字相同的变量
namespace myown1{
string user_name = "myown1";
}
namespace myown2{
string user_name = "myown2";
}
int main()
{
cout<< " "
<< "Hello, "
<< myown1::user_name //用命名空间限制符myown1访问变量user_name
<< "... and goodbye! ";
cout<< " "
<< "Hello, "
<< myown2::user_name //用命名空间限制符myown2访问变量user_name
<< "... and goodbye! ";
return 0;
} 
int main()
{
using namespace myown1;
cout<< " "
<< "Hello, "
<< user_name
<< "... and goodbye! ";
// using namespace myown2;
cout<< " "
<< "Hello, "
<< myown2::user_name //用命名空间限制符myown2访问变量user_name
<< "... and goodbye! ";
return 0;
} 
但第二个变量必需用命名空间限制符来访问,因为此时myown1空间中的变量已经可见,如果不加限制,编译器就会无法识别是那一个命名空间中的变量。这一点一定要注意。