A类内部的B类继承了A类

acegs

我尝试了以下操作,但无法编译。

class A {
   
   //...members

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

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

伊戈尔·坦德尼克(Igor Tandetnik)

可以这样做,但是B需要的定义需要移到之外A直到右括号为止,它A是一个不完整的类型,而基类必须是完整的。

这将工作:

class A {
   class B;
};

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章