Laboratorio di Calcolo II AA 2003/04

Esercitazione n.8 settimana del 14/6

 

Utilizzo di un Container

 

Costruite un programma main() che utilizzi il container vector della libreria standard STL per memorizzare oggetti di tipo CorpoCeleste tramite il loro puntatore ( CorpoCeleste * ). Inserire nel container puntatori ad oggetti di tipo CorpoCeleste e puntatori ad oggetti di tipo Sonda. Successivamente accedete agli elementi del container per visualizzare su video alcune caratteristiche degli oggetti (ad esempio la massa, la posizione, la velocita’).

 

Dopo aver verificato il corretto funzionamento del programma precedente, modificare la classe SistemaSolare in modo da memorizzare i pianeti che compongono un sistema solare tramite un container di tipo vector. In particolare tenere presente che:

i) L’attributo N della classe SistemaSolare puo’ essere eliminato, utilizzando il metodo size() del container di tipo vector;

ii) I costruttori SistemaSolare() e SistemaSolare(int n) devono essere opportunamente modificati. Quest’ultimo costruttore, di per se’ ora inutile, venga mantenuto per compatibilita’ con la versione precedente;

iii) I metodi aggiungiPianeta ed evolvi devono essere opportunamente modificati.

 

 

N.B. Per semplificare la notazione, in particolare nel caso degli iteratori, si puo’ utilizzare l’istruzione typedef che permette di associare ad un qualsiasi comando o stringa un alias. La sintassi e’:

 

typedef nomecomando alias ;

Ad esempio:

typedef vector<CorpoCeleste *>::const_iterator CCIter ;

In questo modo sara’ possibile utilizzare l’ "abbreviazione" CCIter per indicare l’iteratore su un vettore di puntatori ad oggetti di tipo CorpoCeleste.