Ciao a tutti.
Da pochissimo mi sono dato alla programmazione tramite template e ho crecato di implementare un template di classe array molto semplice (array allocabili in fase di compilazione).
Ma il programma che ho creato mi da un sacco di errori. Probabilmente non ho capito bene come usare i template. Potreste spiegarmi dove sbaglio e perchè? Grazie.
codice:#ifndef ARRAY_H #define ARRAY_H template <typename T> class Array { public: Array(int = 1); // Costruttore di default ~Array(); T &operator[](int); private: int dimensioneArray; T* arrayPtr; }; #endif #include <iostream> using std::cerr; template <typename T> Array::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::~Array() { delete [] arrayPtr; // Dealloca la memoria occupata } template <typename T> T &Array::operator[](int elemento) { if (elemento < 0 or elemento > dimensioneArray) { cerr << "Errore: elemento inesistente." << endl; } }