classB里面classA继承classA

class B inside class A inherits class A

我尝试了以下但未能编译。

class A {
   
   //...members

   class B : public A {    //<---failed here
      using A::A;
      
   }
   
}

这可能吗(特别是在 c++17 中)?这只是语法错误吗? 如果不可能,为什么这不起作用?

这可以做到,但是 B 的定义需要移到 A 之外。在右大括号之前,A 是一个不完整的类型,而基础 class 必须是完整的。

这可行:

class A {
   class B;
};

class A::B : public A {
    using A::A;
};