我和我的同事发生了争执。
我们有一个类,它是命名空间的成员(它是另一个命名空间的成员,但我认为这在这里并不重要)。在头文件中,我们将类块嵌套到命名空间块中,如下所示:
namespace NS {
class A {
void method();
// ...
};
}
这是 .cpp 文件和我们论证的主题。我写:
using namespace NS;
void A::method() {
// ...
}
同事告诉我,我不正确地使用了 'using' 指令,我应该在这里使用与标题中相同的 NS { ... }。(他修改了代码并得到了一些编译器错误,他只能通过删除 using 指令并用 NS { ... } 包围代码来摆脱这些错误。)
我的观点是“使用”只会影响名称查找,因此在 NS 命名空间中查找 A,所以我的方法是正确的,他的编译器问题是由其他原因引起的,而不是由“使用”指令引起的。
谁是对的,为什么?
补充:伙计们,请不要像“我多次这样做(或那样)方式”那样回答,这没有多大用处。我们在这里需要理论:为什么这种或那种方法是对还是错。