Por que a declaração de classe não funciona quando a classe é incluída em outra classe
Isso compila
#include "Sprite.h"
class GameObject
{
public:
int x, y, w, h;
Sprite sprite;
public:
GameObject();
GameObject(int _x, int _y, int _w, int _h);
virtual ~GameObject();
};
Isso não
class Sprite;
class GameObject
{
public:
int x, y, w, h;
Sprite sprite;
public:
GameObject();
GameObject(int _x, int _y, int _w, int _h);
virtual ~GameObject();
};
Eu sei que poderia encaminhar declarar e usar o ponteiro para Sprite, mas por que a declaração de encaminhamento não funciona aqui. "Classifica Sprite"; diz que o Sprite existe? Estou tentando # incluir tantas classes em .cpp e evitá-lo em .h a qualquer custo. Além disso, as classes não se incluem, portanto, não há necessidade de usar o Sprite *. Acho que meu entendimento sobre o que é declarar a frente está errado ou algo assim, porque não vejo uma razão para que isso não funcione.
Desde já, obrigado.