Namespace:命名空间。
命名空间是用来解决不同的类和函数拥有相同的名称的问题。解决了命名冲突的问题。
namespace gxg
{
class A;
void BFunction();
}
namespace gaoxiaoguang
{
class A;
void BFunction();
}
使用方法:
gxg::A gxgA;
gaoxiaoguang::A gaoxiaoguangA;
gxg::BFunction();
gaoxiaoguang::BFunction();
我们写程序时使用标准的程序库经常会这样写:
#include <iostream>
std::cout << “hello world!” << std::endl;
或者
#include <iostream>
using namespace std;
cout << “hello world!” << endl;
这两句话的差异在于一个使用了using namespace std。”using directive会使namespace内的所有名字曝光。using directive 等于将这些名字宣告于namespace之外。这么一来,名称冲突问题就可能死灰复燃。”——《c++标准程序库》。也就是说,在两个命名空间都需要用到的时候,而且有重合的时候不能同时使用using namespace gxg和using namespace gaoxiaoguang照样会出现编译不通过的问题。
所以说,在使用命名空间的时候尽量不要用相同的名字,即使有相同的名字,最好不要设计到经常同时使用的地方。这个原则是为了避免不必要的冲突。或者是说在用每个函数和类的时候,不要嫌麻烦,全部写上其命名空间,保证不会出现命名冲突问题。