我读到在C ++中不鼓励使用using指示永远不要在头文件中使用指令。为什么会那样?有什么暗示吗?
谢谢!
答案 0 :(得分:4)
如果你在谈论'使用'指令,不使用它的原因是因为如果你说
using namespace std;
在头文件中,#include该头文件的所有文件都将被强制使用该命名空间,这可能会导致问题。
答案 1 :(得分:3)
因为它可能会破坏工作代码,所以在尝试添加标题时,如果您的标题命名空间践踏了在过去工作代码中定义的其他命名空间。
答案 2 :(得分:2)
using namespace x;
是一个非常糟糕的主意,因为您不知道您要导入的名称,即使使用标准库也是如此。
然而:using std::cout;
和类似语句是一个非常好的想法,因为它们显式地导入符号,并使代码更具可读性(尽管放置它们仍然不是一个好主意在头文件的全局范围内。)
答案 3 :(得分:0)
在头文件中声明静态变量类似于no。在头文件中添加using语句会将命名空间转换为包含头文件的.cpp文件。没有必要。在更糟糕的情况下,您可能必须更改.cpp中的一些变量或函数名称,以避免命名冲突。