【问题标题】:Can one namespace be a member of another namespace?一个命名空间可以是另一个命名空间的成员吗?
【发布时间】:2015-01-15 23:50:36
【问题描述】:

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

【问题讨论】:

标签: c++ namespaces


【解决方案1】:

“我可以在另一个命名空间中声明一个命名空间吗?”

是的,您可以随意嵌套命名空间

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

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

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

【讨论】:

  • 一旦我不再像 OP 那样懒惰,我就会对此投赞成票 ;)
  • @DracoM。好吧,看看std::chrono 之类的东西应该会很明显。
  • @CaptainObvlious 好吧,随着声望的提高,我有一种变得更懒惰的感觉,要回答哪些问题 ;) ...
  • 哈哈@πάντα ῥεῖ,至少有人愿意回答我懒惰的一天的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
  • 2012-05-27
相关资源
最近更新 更多