代码改变世界

[转]在头文件里避免使用using namespace XXX;

2013-05-31 09:45  Ball Cactus  阅读(220)  评论(0编辑  收藏  举报

转自:http://yongkai.blog.51cto.com/1290440/551999

作为一个C++的最佳实践(Best Practice),我们可以说尽量避免在头文件中使用C++的using namespace XXX;

为什么呢?因为头文件经常被包含在其他的头文件和cpp文件中。C++的编译器直接就把头文件字符串拷贝过来,这样就强制让另外的头文件和cpp也using namespace XXX; 这有时候可能会造成麻烦。

比如说:

在A.h中

using namespace std;


在B.h中,
我们自己定义了一个类vector,
class vector
本想这个类是纯粹我们自己定义的,不是std的那个。

可是在B.cpp中,
我们
#include "B.h"
#include "A.h"

vector a;

在编译到此的时候,编译器就会报错,不知道这个vector到底是std的那个,还是我们自己定义的那个。

所以我们最好不要在头文件中使用using namespace XXX;我们可以在头文件中直接使用全名称。在cpp中可以放心地使用它。