Salve.
Ho una classe array scritta in C++ che riutilizzerò in altre classi, ed ho problemi riguardo la dichiarazione del costruttore per copia ottenuto overloaddando l'operatore =.
Vi mostro il codice che è più chiaro di un migliaio di parole:
E quando compilo mi dà il seguente errore:codice:template <typename T> class array { private: unsigned int _length; // Il numero di elementi corrente unsigned int max; // La grandezza massima dell'array fino ad un determinato momento T *_array; // Il puntatore public: array<T>(unsigned int n); virtual ~array(); const array& operator=(const array& A); // Costruttore per copia T& get(unsigned int index); // Restituisce l'i-esimo elemento void add(T x, int i); // Aggiungi l'elemento x in posizione i unsigned int length(); T& remove(unsigned int index); }; [...] template <typename T> const array& array<T>::operator=(const array& A) //Questa riga dà l'errore { delete[] _array; _array = A; return A; }
Dov'è che sbaglio?codice:array.h:40: error: expected initializer before '&' token![]()
![]()


Rispondi quotando
), solo che il compilatore mi dà un errore super-strano che ho appunto descritto sopra.
