如何解决A类内部的B类继承了A类
我尝试了以下操作,但编译失败。
class A {
//...members
class B : public A { //<---failed here
using A::A;
}
}
这可能吗(特别是在c ++ 17中)?这只是语法错误吗? 如果不可能,为什么这不起作用?
解决方法
可以这样做,但是B
的定义需要移到A
之外。在结束括号之前,A
是一个不完整的类型,而基类必须是完整的。
这将起作用:
class A {
class B;
};
class A::B : public A {
using A::A;
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。