¿Es posible hacer un resumen de clase en C++ sin declarar ningún método abstracto? Actualmente, tengo una clase Sprite con una subclase StaticSprite y DynamicSprite. Me gustaría hacer que la clase Sprite sea abstracta.Clase abstracta sin métodos abstractos
El problema es que no hay ningún método que compartan. Bueno, tanto StaticSprite como DynamicSprite podrían compartir un método draw(), pero los parámetros de este método son diferentes, por lo que esta no es una opción.
¡Gracias!
EDIT: Este es el código para demostrar lo que estoy tratando de hacer:
Sprite:
class Sprite
{
public:
Sprite(HINSTANCE hAppInst, int imageID, int maskID);
~Sprite();
protected:
HINSTANCE hAppInst;
HBITMAP hImage;
HBITMAP hMask;
BITMAP imageBM;
BITMAP maskBM;
HDC hSpriteDC;
};
Staticsprite:
class StaticSprite : public Sprite
{
public:
StaticSprite(HINSTANCE hAppInst, int imageID, int maskID);
~StaticSprite();
void draw(Position* pos, HDC hBackbufferDC);
};
Dynamicsprite:
class DynamicSprite : public Sprite
{
public:
DynamicSprite(HINSTANCE hAppInst, int imageID, int maskID);
~DynamicSprite();
void draw(HDC hBackbufferDC);
};
Como ve, es inútil crear un objeto Sprite, por lo que me gustaría hacer que esa clase sea abstracta. Pero no puedo hacer un extracto de draw() ya que usa diferentes parámetros.
¿Por qué debería ser abstracto sin métodos abstractos? –
Probablemente no quieran que se cree una instancia – Erix
¿De qué sirve tener una clase base sin métodos para heredar de todos modos? – Rob