Ecco la classe:
Grazie mille per l'help!codice:#ifndef ARRAY_H #define ARRAY_H #include <iostream> using std::cerr; using std::cout; using std::cin; using std::endl; template <typename T> class Array { public: Array(int = 1); // Costruttore di default ~Array(); T &operator[](int); void inizializza(); void visualizza() const; private: int dimensioneArray; T* arrayPtr; }; template <typename T> Array<T>::Array(int dimensione) { if (dimensione > 0) // Controlla che la dimensione sia valida { dimensioneArray = dimensione; } else // Imposta la dimensione di default (1) { dimensioneArray = 1; } arrayPtr = new T[dimensioneArray]; // Alloca l'array dinamico for (int i = 0; i < dimensioneArray; i++) // Inizializza tutti gli elementi a 0 { arrayPtr[i] = 0; } } template <typename T> Array<T>::~Array() { delete [] arrayPtr; // Dealloca la memoria occupata } template <typename T> T &Array<T>::operator[](int elemento) { if (elemento < 0 or elemento > dimensioneArray) { cerr << "Errore: elemento inesistente." << endl; } } template<typename T> void Array<T>::inizializza() { for (int i = 0; i < dimensioneArray; i++) { cout << "array[" << i << "]: "; cin >> arrayPtr[i]; } } template<typename T> void Array<T>::visualizza() const { for (int i = 0; i < dimensioneArray; i++) { cout << "array[" << i << "] = " << arrayPtr[i] << endl; } } #endif
Comunque è già un miglioramento degli array normali o è una classe inutile? (So che mancano le ridefinizioni degli operatori, il costruttore di copia, ..., ma volevo farla semplice semplice!).

