Ik heb deze fout:
“fout C4430: ontbrekende typespecificatie – int verondersteld. Opmerking: C++ ondersteunt standaard-int niet”
met dit codevoorbeeld:
//A.h
#include "B.h"
class A{
B* b;
..
};
//B.h
#include "A.h"
class B{
A* a; // error error C4430: missing type specifier - int assumed.
};
Antwoord 1, autoriteit 100%
Dit is een circulaire afhankelijkheid-probleem. Voor het declareren van een pointer naar een klasse is de definitie van de klasse niet nodig; d.w.z. het type hoeft geen compleet typete zijn.
U hoeft dus geen A.h
op te nemen in B.h
, verklaring voorafis voldoende. Zoals:
//B.h
class A; // change the include of A.h to forward declaration
class B {
A* a;
};