array
Vorrei una classe che gestisse in maniera automatica l'allocazione dinamica della memoria, una maniera (efficiente) per poter dichiarare un vettore di lunghezza determinata run-time, ma con una sintassi analoga a quella dei vettori statici. Consideriamo, per semplicità, il caso di vettori di interi.
Chiamiamo questa classe ArrayInt, vorrei poter fare una dichiarazione come segue:
int a;
std::cin >> a;
ArrayInt A(a);
in cui A rappresenti un vettore (dichiarato dinamicamente) di a interi. La classe, poi fornisca elementari metodi per accedere ai singoli elementi di A. Inoltre - importantissimo - la classe si preoccupi di definire correttamente un distruttore che rilasci la memoria allocata dinamicamente, in maniera da evitare memory-leak.
NB: la soluzione di questo esercizio sarà il punto di partenza della prossima lezione, verrà dato per scontato che abbiate provato (e siate riusciti!) a risolverlo.
Chiamiamo questa classe ArrayInt, vorrei poter fare una dichiarazione come segue:
int a;
std::cin >> a;
ArrayInt A(a);
in cui A rappresenti un vettore (dichiarato dinamicamente) di a interi. La classe, poi fornisca elementari metodi per accedere ai singoli elementi di A. Inoltre - importantissimo - la classe si preoccupi di definire correttamente un distruttore che rilasci la memoria allocata dinamicamente, in maniera da evitare memory-leak.
NB: la soluzione di questo esercizio sarà il punto di partenza della prossima lezione, verrà dato per scontato che abbiate provato (e siate riusciti!) a risolverlo.
Nessun commento:
Posta un commento