这种关系"A is nested class in B"传递的吗?

Is relationship that "A is nested class in B" transitive?

本文关键字:in class 关系 is nested      更新时间:2023-10-16

我感兴趣的是关系"A是嵌套类在B"传递?例如:

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

。在这种情况下,C嵌套在A中吗?我正在寻找一个正式的原因(参考标准)解释一下。

嵌套类是在另一个类中定义的类,因此BC都是嵌套的。嵌套类位于其封闭类的作用域内。但这不是可传递的——因为C不能在A内部直接访问,而是通过B::C访问。

我们发现最接近的是:

9.7嵌套类声明[class.nest]
  1. […嵌套类在其外围类的作用域中。[…]

因此,由于C不在A的作用域中,因此它不是"嵌套的"。对于A,但它是一个嵌套类