#include <iostream> // Para cout
#include <string> // Para string
class Vehiculo { //Clase padre
public:
std::string tipo; //Atributo
Vehiculo(std::string t) {} //Constructor
virtual void Mover(){
std::cout << "El vehículo se mueve" << std::endl;
}
};
class Carro : public Vehiculo { //Clase hija
public:
Carro(std::string t) : Vehiculo(t) {} //Constructor que usa el del padre Vehiculo
void Mover() override { //Se sobre escribe el método con override
std::cout << "El carro" << tipo << " se mueve muy rápido - sofis" << std::endl;
}
};
int main() {
Vehiculo* miVehiculo = new Carro("Toyota"); //Puntero al hijo
miVehiculo->Mover(); //Llama al método del hijo
delete miVehiculo; //Libera memoria
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAvLyBQYXJhIGNvdXQKI2luY2x1ZGUgPHN0cmluZz4gICAvLyBQYXJhIHN0cmluZwoKY2xhc3MgVmVoaWN1bG8geyAvL0NsYXNlIHBhZHJlCnB1YmxpYzoKCXN0ZDo6c3RyaW5nIHRpcG87IC8vQXRyaWJ1dG8KCVZlaGljdWxvKHN0ZDo6c3RyaW5nIHQpIHt9IC8vQ29uc3RydWN0b3IKCXZpcnR1YWwgdm9pZCBNb3ZlcigpewoJCXN0ZDo6Y291dCA8PCAiRWwgdmVow61jdWxvIHNlIG11ZXZlIiA8PCBzdGQ6OmVuZGw7Cgl9Cn07CgpjbGFzcyBDYXJybyA6IHB1YmxpYyBWZWhpY3VsbyB7IC8vQ2xhc2UgaGlqYQpwdWJsaWM6CglDYXJybyhzdGQ6OnN0cmluZyB0KSA6IFZlaGljdWxvKHQpIHt9IC8vQ29uc3RydWN0b3IgcXVlIHVzYSBlbCBkZWwgcGFkcmUgVmVoaWN1bG8KCXZvaWQgTW92ZXIoKSBvdmVycmlkZSB7ICAvL1NlIHNvYnJlIGVzY3JpYmUgZWwgbcOpdG9kbyBjb24gb3ZlcnJpZGUKCQlzdGQ6OmNvdXQgPDwgIkVsIGNhcnJvIiA8PCB0aXBvIDw8ICIgc2UgbXVldmUgbXV5IHLDoXBpZG8gLSBzb2ZpcyIgPDwgc3RkOjplbmRsOwoJfQp9OwoKaW50IG1haW4oKSB7CglWZWhpY3VsbyogbWlWZWhpY3VsbyA9IG5ldyBDYXJybygiVG95b3RhIik7IC8vUHVudGVybyBhbCBoaWpvCgltaVZlaGljdWxvLT5Nb3ZlcigpOyAvL0xsYW1hIGFsIG3DqXRvZG8gZGVsIGhpam8KCWRlbGV0ZSBtaVZlaGljdWxvOyAvL0xpYmVyYSBtZW1vcmlhCglyZXR1cm4gMDsKfQ==