Sono abbastanza nuovo in C++, ma ho riscontrato un problema che non riesco a risolvere. Userò le macchine per illustrare il problema, solo per semplificare le cose. Okay, diciamo che ho una macchina di classe base e ho marchi diversi che ereditano da quella classe. In questo modo:C++ Funzione derivata dall'istanza della classe base
class Car
{
public:
Car();
};
class Ford: public Car
{
public:
Ford();
void drive();
void park();
};
L'idea è quella di mettere tutte queste diverse vetture insieme in un'unica un vettore di tipo Car. Mi piace così:
vector<Car*> cars;
cars.push_back(new Ford());
cars.back()->drive(); //this won't work
Come posso chiamare la funzione derivata sull'istanza della classe base? Si noti che voglio posizionarli tutti in un singolo vettore. La ragione di questo è perché voglio solo usare l'ultima istanza di classe auto derivata che è stata aggiunta (in questo caso la classe di macchina derivata è ford). Si noti inoltre che tutte le classi di auto avranno le stesse funzioni.
grazie mille per la risposta ottimo e veloce, questo ha fatto il trucco. – Dan