forward-Deklaration erzeugt inkompatiblen Typfehler

Ich habe einige Vorwärtserklärungen gelesen, auch in diesem Forum. Sie alle sagen, dass es uns davon abhält, die Header-Datei einzuschließen. Der folgende Code erzeugt jedoch einen Fehler:

#ifndef CLASSA_H_
#define CLASSA_H_

class B;

class A {

public:
    A();
    ~A();
    int getCount();
private:
    static int _count;
    int _num;
    B _b1;   //ERROR

};

compiler sagt:A.h:23: error: field ‘_b1’ has incomplete type

Ich bemerkte, dass, wenn ich_b1 vom TypB* das Problem ist behoben

So ist die Forward-Deklaration nur für Zeigertypen geeignet?
Wenn ich willA haltenB Objekt muss ich#inlcude "B.h" ?

Vielen Dank

Antworten auf die Frage(8)

Ihre Antwort auf die Frage