Dies kompiliertWarum funktioniert nicht foward Deklaration der Klasse, wenn Klasse in eine andere Klasse enthalten ist
#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();
};
Dies gilt nicht
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();
};
Ich weiß, dass ich erklären und Zeiger verwenden, weiterleiten könnten Sprite, aber warum leitet die Deklaration hier nicht weiter. Nicht "Klasse Sprite;" erzählt, dass Sprite existiert? Ich versuche # so viele Klassen in .cpp einzuschließen und es in .h um jeden Preis zu vermeiden. Auch Klassen schließen einander nicht ein, so dass es nicht notwendig ist, Sprite * zu verwenden. Ich denke, dass mein Verständnis davon, was nach vorne deklarieren ist falsch oder etwas ist, weil ich keinen Grund sehe, warum das nicht funktioniert.
Vielen Dank im Voraus.
Der Grund, warum es mit Zeigern funktioniert, ist, weil der einzige Dingzeiger, der wissen muss, die Größe der Speicheradresse ist, die immer dieselbe ist? –
@DrunkBearzz Yup! –
Cool, das fasst es zusammen, ich lerne auch etwas über Zeiger, danke Mann –