codice:
template <class T> Matrix2D<T> Matrix2D<T>::trasposta() {
if (matrice_temp!=0)
delete(matrice_temp);
matrice_temp= new Matrix2D<T>(righe, colonne); //scambia il numero di righe con il numero di colonne
for(int i = 0; i < colonne; i++)
{
for (int j = 0; j < righe; j++)
(*matrice_temp).matrice[j][i] = matrice[i][j];
}
return *matrice_temp;
}
uso un puntatore per evitare conflitti nella memoria durante l'esecuzione dei metodi da parte di più processi contemporaneamente.
la seconda volta che viene richiamato il metodo dà errore (access violation) quando fa la delete
ho notato che se metto nel controllo == funziona, ma non ha senso.
il puntatore nel costruttore viene inizializzato = 0.
Lo stesso controllo c'è anche nel distruttore ma dà errore anche lì.