c++ - 继承前向声明的结构?

标签 c++ inheritance forward-declaration

我不能从仅向前声明的结构继承吗?

例子:

struct A;
class B : public A {};

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

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

谢谢

最佳答案

你不能这样做。首先,当你从一个结构或类继承时,它的大小必须是已知的。但是如果结构只是前向声明,编译器就无法确定大小。并且编译器还需要知道父类(super class)有哪些成员,例如如果有任何 virtual 函数等。

关于c++ - 继承前向声明的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11128777/

相关文章:

c++ - 从文件中读入结构数组

c++ - 新的不完整类型在包装在模板中时编译

c++ - 前向声明中的字段类型不完整

c++ - Clang++ 非静态数据成员初始化错误? C++11

c++ - 似乎无法在 Eclipse 上构建 Qt 项目(C++、Windows)

c++ - 正确的 C++ 方法来存储多类型数据

c++ - 根据抽象类快速确定子类

programming-languages - 没有头文件的语言如何将闭源库中的符号导出到客户端?

c++ - DirectX 和 C++

c# - is 关键字不适用于继承(基类是派生对象)= true "How could I avoid that"