Una duda: si yo quiero usar varias clases, con un método virtual puro, y esto seguro al 100% que solo voy a usar los métodos de las clases derivadas, ¿hace falta que implemente también el de la clase base?
Ejemplo:
Código C++:
Ver originalclass Animal{
public:
virtual int come(); { //Este nunca le voy a utilizar return 1;}
};
class Lobo : public Animal
{
public:
int come() { cout << "¡Yo como como un lobo!\n"; return 1; }
};
class Pez : public Animal
{
public:
int come() { cout << "¡Yo como como un pez!\n"; return 1; }
};
int main()
{
Animal *unAnimal[2];
unAnimal[0] = new Lobo();
unAnimal[1] = new Pez();
for(int i = 0; i < 2; i++) {
unAnimal[i]->come();
}
Estoy obligado a tener la clase base. ¿Qué hago con su implementación? ¿la dejo simplemente vacía?
PD: ejemplo sacado de la wikipedia