我有一个具有函数 draw() 的 Bullet 类。它想将静态成员(SDL_surface 类的对象)传递给此函数,但不确定如何正确执行。 我的类(class):
class AllyBullet: public Bullet
{
public:
static SDL_Surface *sprite;
};
class EnemyBullet: public Bullet
{
public:
static SDL_Surface *sprite;
};
void Bullet::Draw(SDL_Surface *screen)
{
DrawSprite(screen,sprite,posX,posY);
}
Bullet 没有 sprite 成员。我如何编写它才能让继承它的类知道它?
最佳答案
您可以将 Sprite 设为虚拟。像这样:
struct Bullet
{
virtual Sprite getSprite() const;
void Draw(SDL_Surface * screen)
{
DrawSprite(screen, getSprite(), posX, posY);
}
// ...
};
struct AllyBullet : public Bullet
{
static Sprite s;
virtual Sprite getSprite() const { return s; }
// ...
};
关于c++ - 使用函数继承类,具有静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437977/