例如存在文件A.h、A.cpp ,B.cpp,两个cpp文件都包含了A.h文件,并且A.cpp文件中要使用标准命名空间,而B.cpp文件中并不需要,那么这种情况下,最好不要把命名空间的声明USing namespace std放在A头文件中,最好把它放在A.cpp中,因为用#include包含头文件时,预编译器会把头文件中的内容复制到程序中,如果把USing namespace std声明放在头文件中的话,就会造成只要某个文件包含了A头文件,那么该文件中就一定存在USing namespace std的声明,这样就造成了冗余。《程序员修炼之道》这本书里面讲到过编程过程中的一个原则之一是“Don‘t repeat yourself”,这也算是对这个原则的一点点小的体会吧。