在使用标准库中的类型的C++中,什么是通常被认为是好的编码风格?例如,如果我有一个using namespace std;指令,您是否仍然希望看到库类型完全限定为:std::string,或者只使用string作为类型标识符是否可以接受?
如果你真的完全符合条件,你能解释一下背后的理由吗?
发布于 2009-12-09 22:37:25
在头文件中完全限定。在.cpp文件中导入名称空间。
使全局名称空间不会被简单的#include弄乱
发布于 2009-12-09 22:35:58
我更喜欢使用:
using std::string;
string whatever;而不是完全引入名称空间。
在任何情况下,库开发人员都应该避免与标准名称冲突的类型名称,尽管string可能非常常见。
对于非标准的库,我喜欢限定嵌套名称空间是否太长,如果只是类型定义,则将其定义为包含库名称或类似名称的有意义的名称。
发布于 2009-12-09 22:57:13
整个要点应该是避免混淆并生成清晰的代码。在某些情况下,省略命名空间可能会混淆函数或类的来源,但添加总是完整的命名空间可能会变得无法忍受。
using namespace using namespace表示“显而易见的”库(例如std或要在测试程序中测试的库)示例
namespace fs = boost::filesystem;
bool fileExists = fs::exists(fs::path(filePath));编辑,为了完整性:头文件中的using namespace以一种不明显的方式污染了带有导入的命名空间的源文件(在这个线程中已经有了对此的解释)。
https://stackoverflow.com/questions/1874297
复制相似问题