【发布时间】:2012-06-20 21:56:32
【问题描述】:
我不能从仅前向声明的结构继承吗?
例子:
struct A;
class B : public A {};
我收到错误“基类未定义”。
你能帮我解决这个问题吗?
谢谢
【问题讨论】:
标签: c++ inheritance forward-declaration
我不能从仅前向声明的结构继承吗?
例子:
struct A;
class B : public A {};
我收到错误“基类未定义”。
你能帮我解决这个问题吗?
谢谢
【问题讨论】:
标签: c++ inheritance forward-declaration
你不能这样做。首先,当你从一个结构或类继承时,它的大小必须是已知的。但是如果结构只是前向声明,编译器就无法确定大小。并且编译器还需要知道超类有哪些类型的成员,例如如果有virtual函数等。
【讨论】:
当您从类派生时,您必须实际包含基类标头。前向声明是不够的
【讨论】: