是“A是B中的嵌套类”的传递关系吗?

时间:2014-05-26 08:28:28

标签: c++ class nested

我感兴趣的是关系“A是B中的嵌套类”传递?例如:

class A
{
    class B
    {
        class C 
        {
            //... 
        };
    };
};

即。在这种情况下,C是否嵌套在A中?我正在寻找一个正式的理由(参考标准)解释了这个时刻。

1 个答案:

答案 0 :(得分:0)

嵌套类是在另一个类中定义的类,因此BC都是嵌套的。嵌套类在其封闭类的范围内。但这不具有传递性 - 因为C无法在A内直接访问,而是通过B::C

我们找到的最接近的是:

9.7嵌套类声明[class.nest]

  
      
  1. [...]嵌套类位于其封闭类的范围内。 [...]
  2.   

因此,由于C不在A的范围内,因此它不是A的“嵌套”,而是嵌套类。