假设我有以下代码
namespace A {
int foo();
}
namespace B {
void foo();
}
using namespace A;
using namespace B;
int x = foo(); // error
我发现A::foo
确实非常有用,但不是B::foo
。我可以采取哪些措施使A::foo
在随后对foo
的无限制引用中成为首选?例如。 using A::foo
(实际上没有效果)或unusing B::foo
。
答案 0 :(得分:2)
拥有命名空间的重点是隔离名称。通过using
整个命名空间,你无视这个原因。
解决问题的方法是一劳永逸地停止using namespace
,永远不要回到这种可悲的策略。