2

前方宣言されただけの構造から継承することはできませんか?

例:

struct A;
class B : public A {};

「基本クラスが未定義です」というエラーが表示されます。

この問題を解決するのを手伝ってもらえますか?

ありがとう

4

2 に答える 2

5

あなたはそうすることはできません。まず、構造体またはクラスから継承する場合、そのサイズを知っている必要があります。ただし、構造体が前方宣言されたばかりの場合、コンパイラはサイズを判別できません。また、コンパイラは、スーパークラスがどのようなメンバーを持っているかを知る必要があります。たとえば、virtual関数があるかどうかなどです。

于 2012-06-20T21:58:37.603 に答える
3

クラスから派生するときは、実際には基底クラスのヘッダーを含める必要があります。前方宣言だけでは不十分

于 2012-06-20T22:00:09.433 に答える