在大型软件开发项目中,类型和函数名冲突是常有的事,如:定义专用类型时就常常不只一次地使用相同的名字。为了避免这个问题。人们通常在代码中使用不同的词缀,由此造成代码很难管理、使用、阅读和编辑。碰到这种问题常常使人郁闷非常而且容易出错。看看下面的代码:
class string {
//这个类名虽然短小精干,意思表达明确,但是它已经被别人使用,你不能再用它作为类名了!
//...
};
class CMYExclusive_string {
// 这倒是个较安全的名字,但是太冗长乏味。不断重复这样的名字会影响自己的心情。 // 况且这样处理还是有名字冲突的可能
//...
}
为了较好地解决这个问题,C++ 提供了规定名字空间的手段,也就是用 namespaces 关键字。有了它,在自己代码中规范地命名类型和函数的自由度就大多了,有了它,你就可以充分使类型和函数的命名简洁、易于理解、使用方便和安全。从而摆脱了哪些在定义和声明中冗长乏味的词缀。你可以在名字空间中对类型或者函数进行分类,为类型和函数的使用系上安全带,例如:
// 某个头文件 vckbaseExcelSoft.h
namespace vckbaseFSDUexcelSoft_ {
class string {
//...
};
class vector {
//...
};
//...etc.
}
接着可以象下面这样存取类型数据:
#include "vckbaseExcelSoft.h"
void main() {
using namespace vckbaseFSDUexcelSoft_;
string s; // 引用 名字空间 vckbaseFSDUexcelSoft_里的 string vckbaseFSDUexcelSoft_::string
// 下面又回到标准的 string
std::string mySTDstr;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yaneng/archive/2009/06/09/4253682.aspx