首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >您更喜欢显式的名称空间还是在C++中的“使用”?

您更喜欢显式的名称空间还是在C++中的“使用”?
EN

Stack Overflow用户
提问于 2008-10-18 11:30:23
回答 7查看 3.8K关注 0票数 17

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

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

或者你更喜欢using namespace

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

如果你更喜欢后者,你是在文件还是在函数作用域声明你的用法?

就我个人而言,我更喜欢显式地命名它们--它更像是类型,但当混合使用名称空间(例如stdboost)时,我发现它更具可读性。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-10-18 11:35:34

我总是使用using namespace进行std & boost。其他所有东西我都倾向于使用显式的名称空间,除非它使用得太多,会使代码变得混乱。

在头文件中,我从不使用using namespace来避免污染#including source的全局命名空间。

票数 17
EN

Stack Overflow用户

发布于 2008-10-18 11:39:13

我总是使用显式的。编写std不会伤害我,我清楚地知道它是从哪里来的。当你有一些遗留的项目需要维护它自己的“字符串”、“向量”等时,它是很有用的。代码携带的信息越多越好。

票数 20
EN

Stack Overflow用户

发布于 2008-10-18 12:05:13

我的一般规则是总是显式地在头中使用名称空间,并且通常在代码中使用using。前者的原因是为了在定义的每个部分中明确说明正在使用的是什么,而后者的原因是,如果需要的话,可以很容易地使用来自另一个名称空间的替换。也就是说,如果我们想要开始使用foo::string而不是std::string,我们只需要更新头文件和using语句,而不是在代码中用foo::string替换std::string的每个实例。

当然,这对于驻留在std::命名空间中的类用处不大,因为即使您替换了一个类,您仍然可能在std中使用其他类,并且可能会遇到歧义问题,但这只是一个示例。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/214927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档