c ++'使用命名空间'的正确位置

Tam*_*mbo 5 c++ namespaces

我正在将一些C++集成到某个版本中,并发现我们采用两种不同的策略来使用命名空间命令.

为了清洁源代码,哪两个是最正确的解决方案?

namespace foo
{
   using namespace bar;
}
Run Code Online (Sandbox Code Playgroud)

要么

using namespace bar;

namespace foo
{
}
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助,

T.

Sho*_*hoe 7

这两者并不相同.在第一种情况下,命名空间bar将在命名空间中导入,foo因此bar::x您可以将其命名为foo::x.在后者中,命名空间bar被导入全局命名空间(或包装它们的命名空间),并且可以作为::x.

我建议您始终为您选择最窄的解决方案.即使只是在您实际需要它的函数中包含命名空间.所以,如果你有疑问,请选择第一个.