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:

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;

}
E quando compilo mi dà il seguente errore:
codice:
array.h:40: error: expected initializer before '&' token
Dov'è che sbaglio?