[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