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