继承前向声明的struct?

时间:2012-06-20 21:56:33

标签: c++ inheritance forward-declaration

我不能继承只是前向声明的结构吗?

示例:

struct A;
class B : public A {};

我收到错误“基类未定义”。

你能帮我解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:5)

你不能这样做。首先,当您从结构或类继承时,必须知道其大小。但是如果结构只是向前声明,编译器无法确定大小。并且编译器还需要知道超类具有哪种类型的成员,例如如果有任何virtual功能等

答案 1 :(得分:3)

从派生类派生时,实际上必须包含基类头。前瞻声明是不够的