标签: c++ inheritance forward-declaration
我不能继承只是前向声明的结构吗?
示例:
struct A; class B : public A {};
我收到错误“基类未定义”。
你能帮我解决这个问题吗?
由于
答案 0 :(得分:5)
你不能这样做。首先,当您从结构或类继承时,必须知道其大小。但是如果结构只是向前声明,编译器无法确定大小。并且编译器还需要知道超类具有哪种类型的成员,例如如果有任何virtual功能等
virtual
答案 1 :(得分:3)
从派生类派生时,实际上必须包含基类头。前瞻声明是不够的