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

用"使用"来引用特定项目是一个好习惯吗?

如何解决《用"使用"来引用特定项目是一个好习惯吗?》经验,为你挑选了1个好方法。

例如,我知道我的代码中只需要std命名空间中的"cout",所以我将它称为:

using std::cout;

所以我可以自由地使用它:

cout << "Using namespaces like a boss!" << std::endl;

而不是将整个命名空间带到我的代码中.

因为我被告知使用命名空间是一种不好的做法,因为它可以与其他命名空间中的其他函数交叉(幸运的是,它不是我的情况,我仍然是学习编码,我在我的职业生涯的第二个学期),但我不想将std添加到一切,我想做"使用std :: cout"和其他类似的东西,这样我可以提高代码的可读性,这对我来说在某个时间点理解我的代码很重要.



1> Anders..:

普遍认为"坏习惯"可以替代讨论真正的问题和权衡取舍,一种不好的做法.

有些技术可能很糟糕,经常被误用.该using特别是using namespace指令可以被滥用,所以千篇一律的心态是只说自己是有点"坏".

在单个.cpp文件中,您可以更好地控制命名空间,因此using std::cout在文件范围内甚至using namespace my_funny_namespace可以正常,只要冲突的机会是可管理的并且可读性有所提高.在某些时候,也许如果.cpp文件变得复杂,你就冒着一个新名称被添加到你的一个名字的some_funny_namespace冲突的风险,并using namespace some_funny_namespace会带来一些会破坏你的代码的东西.但是对于像boost或std这样稳定的东西,这可能不太可能.

您还可以使用using本地,按功能.但是如果文件中的大多数函数都需要相同的声明,那就干掉了

当你在标题中使用其中任何一个时,它可以越过界限变成一个非常糟糕的东西.然后,您将其他名称空间中的名称泄露到包含标题的每个文件中.有关替代方案和讨论,请参阅这个很棒 这非常糟糕,因为当包含或不包括标题导致一些完全不相关的问题显示或消失时,它可能导致怪异的远距离动作错误.并且它不仅仅是"你的"代码可能会破坏,它可能会破坏其他人使用标题的代码.

不要将名称泄漏到其他名称空间中

所以using特别using namespace是在标题中被修改?如果标题是在一组选定的.cpp文件中供内部使用,该怎么办?那么,也许没关系.这就是千篇一律的规则的问题,总有一个例外,让一些假设的事情变得更糟,但最好的做法是可怕的.

上档using是可读性(这应该是额定下).

缺点是名称冲突的可能性,特别是其他随机代码中的不可预测的冲突.

做出明智的选择.仔细考虑你的设计的各个方面是很好的做法.

(问好问题也不错).

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