转自: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中可以放心地使用它。