CalgaryCorpus Si! :D
¿Algo parecido a esto no?
Código C++:
Ver original#include <iostream>
using namespace std;
class vehiculo {
public:
void insertarllave() {cout << "meter llave";}
//necesita metodo virtual =(
virtual void encender(){cout << "BASE!..Girar llave para encender\n\n";}
};
class carro_standard:public vehiculo {
public:
void meterclutch() { cout << "Pisar clutch\n\n"; }
void encender() { cout << "DERIBADA!..Girar llave para encender\n"; meterclutch(); }
};
int main() {
carro_standard miCarro;
//Recorte de objetos o "slicing"
vehiculo& pVehiculo = miCarro; //Si paso carro como puntero o referencia accedo a la clase derivada
vehiculo objVeyculo = miCarro; //Si paso el obj accedo a la clase base.
//Importante...fijese que le paso el objeto derivado De 2 formas distintas y obtengo 2 resultados
//distintos segun quiera una cosa u otra, pero les paso a la clase "BASE" WTF!XD
objVeyculo.encender();//Aqui comprobamos el objeto "miCarro" recortado que me da acceso a la clase base de "miCarro"
pVehiculo.encender();//Aqui comprobamos la referencia, que me da como resultado la clase derivada de "miCarro"
//Es un tema Bochornozo....Lea mucho sobre el antes de usar XDD
return 0;
}
Si le pasas un puntero/referencia o le pasas un objeto tienes dos funcionamientos distintos.
Muy interesante, estoy leyendo sobre eso. ^^
A ver si logro pillar el trankillo sobre el tema =D