标准C++库中的所有组件都是在一个被称为 std 的名字空间中声明和定义的。当你使用名字空间编译指令(using namespace std;)使标准C++库中的所有组件对当前程序可用时,一个潜在的问题是你自己定义的类/全局变量/全局函数的名称有可能和 C++ 库中的名称是一样的,这时编译器会给你一个重定义之类的错误。这时你可以这么做...
方法一:程序中不写编译指令 using,以下述方式进行编码
std::cout<<"hello word"<<std::endl; std::cout<<a<<std::endl;
方法二:程序中通过编译指令 using 使标准C++库中的所有组件对当前程序可用,对自己定义的全局变量指定名字空间域,即用花括号把类/全局变量/全局函数括起来,并以关键字 namespace 开头给它起一个名字
//全局定义 namespace AAA { int a = 0; } namespace BBB { int max(int x,int y) { return x > y ? x : y; } } //使用 cout<< AAA::a <<endl; cout<< BBB::max(10,20) <<endl;
名字空间域很好的解决了命名冲突的问题。