当前位置:  开发笔记 > 编程语言 > 正文

您更喜欢C++中的显式名称空间还是"使用"?

如何解决《您更喜欢C++中的显式名称空间还是"使用"?》经验,为你挑选了3个好方法。

使用C++命名空间时,您更喜欢显式命名它们,如下所示:

std::cout << "Hello, world!\n";

或者您更喜欢using namespace:

using namespace std;
cout << "Hello, world!\n";

如果您更喜欢后者,您是否在文件或功能范围内声明您的使用?

我个人更喜欢明确地命名它们 - 它更多的是打字,但是当使用命名空间的混合(例如stdboost)时,我发现它更具可读性.



1> Konrad Rudol..:

额外输入不是问题.显式限定名称的问题是视觉混乱.让我们面对现实,C++语法不整洁.不必通过不必要地使名字更长并且用::s 慷慨地填充代码来使这更糟糕.

我和Jeff Atwood在一起:最好的代码根本就没有代码.这是真的.

命名空间导入是一种减少混乱的好方法,没有任何缺点:只要打开的命名空间的范围减少到单个编译单元1,名称冲突(如果出现)可以轻松解决.

为什么显式名称(一般来说)应该更具可读性对我来说一直是个谜.读者通常应该知道代码足够好以便能够推断出语义.如果不是,则代码需要修复.


1)推论:using标题中没有!



2> Nazgob..:

我总是使用明确的.写std不会伤害我,我清楚地看到它来自哪里.当你有一些遗留项目来处理它自己的"字符串","向量"等维护时,这很有用.代码携带的信息越多越好.



3> Ferruccio..:

我一直using namespace用于std和boost.其他所有我倾向于使用显式命名空间,除非它被大量使用以致它会使代码混乱.

在标题中,我从不使用using namespace以避免污染#including源的全局命名空间.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有