如何使用命名空间的特定成员?

How to use specific members of a namespace?

我正在尝试对特定成员使用指令 using namespace NS,但编译器似乎无法理解。

这是一个非常简单的代码示例:

namespace NS{
    int a;
    int b;
}
using namespace NS::a;
int main(){
    return 0;
}

Clang 编译器 returns 错误:预期命名空间名称位于 使用命名空间 NS::a;

a 不是命名空间。因此,您可以只使用 using namespace NS 在全局命名空间中拉取命名空间的内容,或者使用 using NS::a.

在全局命名空间中仅拉取 a

using namespace NS 表示 NS 是一个命名空间,您希望直接访问它的范围。所以你可以直接写 a 而不是 NS::a

同时

using namespace NS::a 表示 NS 是一个包含另一个命名空间 a 的命名空间,并且您想访问在命名空间 a 范围内定义的变量!!!