一,什么时候可能需要namespace
可能大多数项目没有使用namespace,因为项目不大,不需要。但是下面两种情况可能会需要
1,大项目
项目大了,可能类名会有重复,如果不适用namespace,会造成重名,或者为了不重名取了一些折中的奇怪的名字。
2,框架库
基本上所有框架库都会使用namespace,否则别人使用了造成命名重名了,就不好办了。比如标准库
二,分为几种
1,有名namespace
namespace Example1 {
class CTest{
};
};
这个好理解,不再说明。
2, 无名namespace
namespace {
int i;
};
int i;
什么时候需要这个呢?它相当于全局作用域了,碰坏了命名空间的目的,所以基本是没用它。
三,注意点
1,using namespace 不要在头文件中使用,否则include这个头文件后相当于没有命名空间了,应该放在cpp文件中。
2,namespace 名最好是模块名,按模块来划分。
目前所在公司有个项目有人定义每个类,都定义了和类名一样的命名空间,还在类的定义头文件中using 这个命名空间,这样是错的。