[C con Clase] Funcion virtual no hace falta con objetos locales ?

Stack Overflow stackoverflow32 en gmail.com
Dom Dic 11 21:51:42 CET 2011


Hola lista

Estoy aprendiendo C++, y copio este ejemplo que encontre para ver como
funcionan las funciones virtuales.
El siguiente es el codigo que estoy probando:

*#include <iostream>*
*using namespace std; *
*
*
*class Vehicle   //This denotes the base class of C++ virtual function*
*{ *
*public: *
*        void Make()   //This denotes the C++ virtual function*
*        { *
*                virtual cout << "Member function of Base Class Vehicle
Accessed" << endl;*
*        } *
*}; *
* *
*class FourWheeler : public Vehicle *
*{ *
*public: *
*        void Make() *
*        { *
*                cout << "Virtual Member function of Derived class
FourWheeler Accessed" << endl; *
*        } *
*}; *
* *
*int main() *
*{ *
*        Vehicle *a, *b; *
*        a = new Vehicle(); *
*        a->Make(); *
*        b = new FourWheeler(); *
*        b->Make(); *
*
*
*        return(0);*
*}*

Lo que noto es que si en lugar de definir punteros a y b a Vehicle, usara
un puntero a Vehicle y otro a FourWheeler, no haria falta que declare el
metodo Make como virtual.
El objeto puntero a FourWheeler accederia a su metodo Make correctamente.
No termino de entender porque usaria un puntero a Vehicle si voy a crear un
objeto FourWheeler.
Alguien puede ilustrarme con algun caso donde tenga sentido tener metodos
virtuales ?

Gracias
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20111211/e040f570/attachment.html>


Más información sobre la lista de distribución Cconclase