【发布时间】:2016-07-26 02:13:30
【问题描述】:
这样编译
#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();
};
我知道我可以为 Sprite 转发声明和使用指针,但是为什么转发声明在这里不起作用。 不是“类雪碧”;告诉雪碧存在? 我正在尝试#include .cpp 中的尽可能多的类,并不惜一切代价避免在 .h 中使用它。 此外,类不包括彼此,因此无需使用 Sprite*。 我想我对前向声明的理解是错误的或其他什么,因为我看不出这不起作用的原因。
提前致谢。
【问题讨论】:
标签: c++ class include declaration forward-declaration