在我们所有的 c + + 课程中,所有的教师都把 using namespace std;
放在 .h
文件中 #include
之后。这对我来说似乎是危险的,因为在另一个程序中包含这个头,我将得到导入到我的程序中的名称空间,可能没有意识到,打算或想要它(头包含可以是非常深的嵌套)。
所以我的问题是双重的: using namespace
不应该在头文件中使用,我是对的吗? 或者有什么方法可以撤消它,比如:
//header.h
using namespace std {
.
.
.
}
同样还有一个问题: 一个头文件 #include
是否应该包含它对应的 .cpp
文件所需要的所有头文件,只包含头定义所需要的那些头文件,让 .cpp
文件 #include
占据剩余的头文件,还是不包含头文件,并将它所需要的所有东西都声明为 extern
?
这个问题背后的原因和上面一样: 我不希望在包含 .h
文件时出现意外。
另外,如果我是对的,这是一个常见的错误吗?我的意思是在现实世界的编程和“真正的”项目中。
谢谢你。