これはコンパイルはなぜクラスの仕事のフォワード宣言はクラスが別のクラスには含まれていない場合
#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();
};
これがないの
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();
};
私は宣言し、ためにポインタを使用転送することができることを知っていますスプライトだが、ここでは宣言を働かせない理由はここにある。 "クラススプライト;"スプライトが存在することを伝えますか? 私は、.cppで#includeクラスを#includeしようとしています。 また、クラスは互いに含まれていないので、Sprite *を使用する必要はありません。 私は、前方宣言が何であるかについての私の理解は間違っていると思います。なぜなら、これはうまくいかない理由がないからです。
ありがとうございます。
ポインタで動作する理由は、ポインタが知る必要があるのはメモリアドレスのサイズが常に同じであるためです。 –
@DrunkBearzzはい! –
クール、それはそれを要約する、私はまた、ポインタについて、何かを学ぶ –