Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2010, 09:45
vrael
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Métodos virtuales en POO

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 original
  1. class Animal{
  2.     public:
  3.         virtual int come(); { //Este nunca le voy a utilizar   return 1;}
  4. };
  5.  
  6. class Lobo : public Animal
  7. {
  8. public:
  9.     int come() { cout << "¡Yo como como un lobo!\n"; return 1; }
  10. };
  11.  
  12. class Pez : public Animal
  13. {
  14. public:
  15.     int come() { cout << "¡Yo como como un pez!\n"; return 1; }
  16. };
  17.  
  18. int main()
  19. {
  20.     Animal *unAnimal[2];
  21.     unAnimal[0] = new Lobo();
  22.     unAnimal[1] = new Pez();
  23.  
  24.     for(int i = 0; i < 2; i++) {
  25.         unAnimal[i]->come();
  26.     }

Estoy obligado a tener la clase base. ¿Qué hago con su implementación? ¿la dejo simplemente vacía?


PD: ejemplo sacado de la wikipedia
__________________
Blog: http://a-dream-of-dragon.blogspot.com