0

我有一个不属于任何命名空间的类

A类(*)。

我有另一个同名但属于命名空间的类

命名空间 B 的类 A 的一部分。

在 xyz.cpp 中,我有以下内容:

#include "..."

using namespace B;
// some code
A::var; // This A should be part of (*) and not namespace B.
// some code

但由于我有冲突的类名,我得到了错误。有没有办法解决这个问题?

4

2 回答 2

1

The using namespace keyword imports all of the names from the specified namespace into the global namespace. Since you already declared a class A in the global namespace, this results in a conflict.

Solution: Don't use using namespace B.

This is effectively what you're doing:

namespace GLOBAL {
    class A { ... };
};

namespace B {
    class A { ... };
};

using namespace B /* export 'B::A' into 'GLOBAL' resulting in a conflict; */ ;
于 2013-11-15T07:18:21.633 回答
0

你可能不会使用

using namespace B;

但使用喜欢

 B::A::var 

反而。

于 2013-11-15T07:20:50.573 回答