Hola:
¿Estas líneas?:
Código C++:
Ver originalvehicle[i] = static_cast<Vehicle*> (&sc);
vehicle[i+1] = static_cast<Vehicle *> (&ca);
vehicle[i+2] = static_cast<Vehicle *> (&ht);
vehicle[4] = reinterpret_cast<Vehicle*>(&fg1);
vehicle[5] = reinterpret_cast<Vehicle*>(&fg2);
¿Es la forma de pasar los objetos de la clase derivada a la clase base?
Lo pregunto porque no lo sé, y parece un tema interesante.
Por otro lado, yo siempre hago el método clásico
Código C++:
Ver originalvehicle [i+1] = new Scooter("YAMAHA","123456");
vehicle[i+1]->print();
Por cierto, que tienes un fallo en los constructores:
Código C++:
Ver originalScooter(string b, string p) : Vehicle(brand,plate){}
debería ser:
Código C++:
Ver originalScooter(string b, string p) : Vehicle(b,p){}
(y así en los demás)