一个命名空间可以是另一个命名空间的成员吗

时间:2015-01-15 23:50:36

标签: c++ namespaces

问题很简单,我可以在另一个名称空间内声明一个名称空间吗?如果是这样,这个命名空间的正确术语是什么,它会被称为“内部命名空间”还是“嵌套命名空间”,或者可能是完全不同的东西?

1 个答案:

答案 0 :(得分:3)

  

"我可以在另一个名称空间内声明一个名称空间吗?"

是的,您可以根据需要嵌套命名空间

namespace A {
    struct thingA;
    void funcA();
    namespace B {
        struct thingC;
        void funcB();
        namespace C {
            struct thingC;
            void funcC();
        }
    }
}

使用::(范围)运算符参考上述声明:

A::thingA thingA;
A::funcA();

A::B::thingB thingB;
A::B::funcB();

A::B::C::thingC thingC;
A::B::C::funcC();
  

"这个命名空间的正确术语是什么,它是否被称为“内部命名空间”'或者是一个嵌套的命名空间',或者可能是完全不同的东西?"

而且,是的,它通常被称为'嵌套命名空间'