Scusate forse non ho capito molto bene l'utilizzo del tipo reference:
in questo caso ad esempio (sto scrivendo una classe per lavorare su matrici) definisco il function object che presi due unsigned row e col restituisce il valore matrix[row,col] di tipo type, che però non è creato (i.e. copiato) ma è una variabile di tipo reference. Cioè se ho ben capito la reference è un tipo di variabile che mi consente di accedere in sola lettura all'indirizzo di matrix[row][col] piuttosto che creare una variabile di tipo type contente il valore matrix[row][col]. Inoltre sempre se ho ben capito, al variare del valore memorizzato all'indirizzo matrix[row][col] varia anche ciò che restituisce la reference (cioè è come se puntasse a quella cella, ma non ci posso fare sopra le operazioni che farei con un pointer, ma solamente leggere ciò che è memorizzato a quell'indirizzo).codice:template <typename type> type& CMatrix<type>::operator() (const unsigned& row, const unsigned& col) { return this->matrix[row][col]; }
Domanda: la reference è un tipo di variabile e quindi occupa memoria o è qualcos'altro che non riesco a capire?
grazie, Iacopo.