我正在将一些C++集成到某个版本中,并发现我们采用两种不同的策略来使用命名空间命令.
为了清洁源代码,哪两个是最正确的解决方案?
namespace foo
{
using namespace bar;
}
Run Code Online (Sandbox Code Playgroud)
要么
using namespace bar;
namespace foo
{
}
Run Code Online (Sandbox Code Playgroud)
非常感谢你的帮助,
T.
这两者并不相同.在第一种情况下,命名空间bar将在命名空间中导入,foo因此bar::x您可以将其命名为foo::x.在后者中,命名空间bar被导入全局命名空间(或包装它们的命名空间),并且可以作为::x.
我建议您始终为您选择最窄的解决方案.即使只是在您实际需要它的函数中包含命名空间.所以,如果你有疑问,请选择第一个.