如果实际上想要将函数放入全局命名空间,那么使用此样式是否有任何好处:
#include <cfoo>
using namespace std;
或者可以只做
#include <foo.h>
是否有相同的效果?
答案 0 :(得分:2)
如果“foo.h”没有“正确准备”用C ++编译,那么它在C ++环境中就无法正常工作。
“cfoo”样式标题用于使内容“适合”C ++。旧样式标题确实有效的事实主要是为了保持兼容性。
这两种解决方案都是同样糟糕的,因为当你后来发现自己刚刚发生了名字冲突时,所有对foo
的调用都需要更新才能使用bleh::foo
或std::foo
以确保您知道哪一个意味着什么。
但至少如果你有using namespace std
,你可以搜索一些东西。如果你想找到所有“.h”文件,你可能会找到你自己的.h文件,一些“ncurses.h”和类似的东西,而不是你想要的东西。
因此,总而言之,两者都不是好的解决方案,而是
#include <cfoo>;
using namespace std;
有点不那么糟糕。