c++ - 使用函数继承类,具有静态成员

标签 c++ oop class inheritance static

我有一个具有函数 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/

相关文章:

python - .append() 和 .remove() 不在同一个列表中工作 - PYTHON - OOP

c++ - 在 C++ 中构建简单的部分数组类时出现编译时错误

java - 从 JAR 加载类时出现 ClassNotFoundException

c++ - 为什么在 C++ 中,一个类的指针可以转换为另一个类的指针?

c++ - 尝试反转除特殊字符外的字符串时出错

C++ 多维排序

JavaScript - 构造对象的不同方法

ios - 类继承、重写方法以及访问父类(super class)存储的属性

c++ - 在自制 C/C++ websocket 实现中收听消息时遇到问题

node.js - Node js 中的父/子类层次结构