首页 > 解决方案 > 如果命名空间只能有一个全局作用域,怎么会有嵌套命名空间?

问题描述

我阅读了这两条代码及其描述,并认为它们相互冲突。

  1. 命名空间定义只能出现在全局范围内。
void f()
{
    namespace space1{

    }
}
// So this is not allowed as space1 is local to f()
  1. 命名空间可以嵌套
namespace namespace1{
    int i;
    namespace namespace2{
       int j;
    }
}

在这种情况下,namespace2 不会是 namespace1 的本地,从而导致错误吗?

标签: c++nestednamespaces

解决方案


因为你的报价是错误的。更正确的描述是:

命名空间定义只允许在命名空间范围内,包括全局范围。


推荐阅读