This question already has answers here:
cstdio stdio.h namespace
(2个答案)
7年前关闭。
如果确实希望将函数放置到全局 namespace 中,那么使用这种样式有什么好处:
还是可以做
具有相同的效果?
有点坏。
(2个答案)
7年前关闭。
如果确实希望将函数放置到全局 namespace 中,那么使用这种样式有什么好处:
#include <cfoo>
using namespace std;
还是可以做
#include <foo.h>
具有相同的效果?
最佳答案
如果“foo.h”未准备好使用C++进行编译,则在C++环境中将无法正常工作。
那里的“cfoo”样式标题使内容“适合” C++。旧样式的 header 起作用的事实主要是为了保持兼容性。
从某种意义上来说,这两种解决方案同样很糟糕,因为当您以后发现您刚遇到名称冲突时,因此需要更新对foo
的所有调用以使用bleh::foo
或std::foo
来确保您知道哪个是含义。 。
但是,至少如果您有using namespace std
,那么您就有一些要搜索的东西。如果要查找所有“.h”文件,则可能会找到自己的.h文件,一些“ncurses.h”及类似文件,而这些并不是您要查找的文件。
因此,总而言之,都不是好的解决方案,但是
#include <cfoo>;
using namespace std;
有点坏。
关于c++ - C++ header ,foo.h和cfoo ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18391910/
10-11 16:27