2016-08-16 73 views

回答

10

在头文件中,您不应在全局范围内有using namespace N;指令。

它会强制所有客户端代码上的大量标识符N

但它可以在命名空间X中使用。请记住,那么using namespace X;的客户端代码也将从N获取所有标识符。更保守的方法是在命名空间X中有一堆using声明,例如, using N::foo;


的替代,当using namespace N;的原因是N是一个很长的名字,像Not_short_enough_for_practical_use,是使用一个命名空间别名–最好是在需要的地方的最小范围:

namespace N = Not_short_enough_for_practical_use; 

您的老师的“更正”移动一个using namespace的一个名称空间在它之前是负值的。

您应该始终努力(在实际限制内)尽量减少任何事物的范围。

+1

非常感谢。命名空间别名尤其有用! –

1

您的问题看起来有点基于意见,取决于贵公司的内部政策。

您可能有一个非常特殊的情况,但这里常见的建议是声明每个标识符尽可能接近它的第一次使用。它将最大限度地减少滚动并使您的代码更易于阅读。它还会将标识符放在最小和最嵌套的命名空间中,从而防止更广泛的名称空间被不必要的标识符淹没。所以如果我是你,我会要求你的导师对他提出的改变给出非常合理的解释。

+0

是的,实际上我已经向他展示了我的样本。非常感谢! –