declaração direta gera erro de tipo incompatível
Eu tenho lido alguns sobre declarações avançadas, incluindo neste fórum. Todos dizem que isso nos impede de incluir o arquivo de cabeçalho. No entanto, o código a seguir gera um erro:
#ifndef CLASSA_H_
#define CLASSA_H_
class B;
class A {
public:
A();
~A();
int getCount();
private:
static int _count;
int _num;
B _b1; //ERROR
};
O compilador diz:A.h:23: error: field ‘_b1’ has incomplete type
Notei que se eu fizer_b1
do tipoB*
o problema está resolvido.
Portanto, a declaração direta é válida apenas para tipos de ponteiros?
Se eu quiserA
segurarB
objeto que eu tenho que#inlcude "B.h"
?
obrigado!