Come creo un array di oggetti utilizzando "new"?
un oggetto singolo lo creo con
Non voglio utilizzarecodice:Classe* oggetto1 = new Classe(); ... delete oggetto1;
codice:Classe oggetto[Numero_oggetti];
Come creo un array di oggetti utilizzando "new"?
un oggetto singolo lo creo con
Non voglio utilizzarecodice:Classe* oggetto1 = new Classe(); ... delete oggetto1;
codice:Classe oggetto[Numero_oggetti];
Linguaggi : C/C++
SO: WinXP, Slack 10
Se la classe degli oggetti ha un costruttore senza argomenti puoi fare:
MyType* fp = new MyType[100];
per creare dinamicamente un array di 100 elementi MyType, che saranno inizializzati col costruttore senza argomentti.
Se vuoi utilizzare un altro costruttore che prende argomenti non puoi farlo cosi, le possibili soluzioni sono
- creare l'array come sopra e poi riassegnare tutti gli eleemnti dell'array con oggetti creati con gli argomenti opportuni;
- creare un array di puntatori agli oggetti e poi inizializzare ogni singolo oggetto:
MyType** fp = new MyType *[100];
e poi con un ciclo for inizializzi fp[i] con un nuovo oggetto:
fp[i] = new MyType(<lista degli argomenti per l'oggetto i>);
- un'altra alternatica penso che potrebbe esere l'overloading dell'operatore new[] per la classe in modo da poter passare all'operatore anche gli argomenti con cui chiamare il costruttore di tutti gli oggetti (che saranno quindi tutti inizializzati con gli stessi argomenti), ma non ho mai approfondito questa soluzione.
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals