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

Can one namespace be a member of another namespace?

本文关键字:命名空间 另一个 成员 是否 一个      更新时间:2023-10-16

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

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

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

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();

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

也是的,它通常被称为"嵌套命名空间"。