您的位置:首页 > 其它

Namespace:命名空间

2009-03-31 14:55 246 查看
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照样会出现编译不通过的问题。
所以说,在使用命名空间的时候尽量不要用相同的名字,即使有相同的名字,最好不要设计到经常同时使用的地方。这个原则是为了避免不必要的冲突。或者是说在用每个函数和类的时候,不要嫌麻烦,全部写上其命名空间,保证不会出现命名冲突问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: