Quote Originariamente inviata da maluz1 Visualizza il messaggio
effettivamente è la prima volta che tratto il polimorfismo quindi sono abbastanza disorientato.
quindi per creare un vettore di oggetti, devo creare un vettore di puntatori a oggetti( cosa che io avevo già intenzione di fare );
il problema sta però dopo: per ottenere un vettore di DIVERSE classi figlie, come le inserisco nel vettore se in questo ho solo puntatori a classe madre( come mi hai detto te ) ?
Un puntatore a classe figlia può essere assegnato ad un puntatore a classe base, dato che classe_figlia è una classe_base (principio di sostituzione di Liskov).
mettiamo per esempio che io abbia una classe madre con una sola variabile: int a;

ho poi due classi figlie in cui:
-nella prima ho una seconda variabile : int b;
-anche nella seconda classe figlia ho una seconda variabile: int c;

il vettore che devo creare deve contenere sia elementi della prima classe figlia che della seconda.

si può fare?
Certo, basta memorizzare i puntatori a classe figlia nel vettore, esattamente come faresti con la classe-genitore.
codice:
std::vector<classe_base *> vec;
vec.push_back(new classe_base);
vec.push_back(new classe_figlia);
(ricordandosi poi alla fine di fare tutte le delete del caso)