Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C++] reference type

Visualizzazione discussione

  1. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    grazie alla quale posso andare ad agire sull'elemento "referenziato" senza crearne copie. Questo è il vantaggio?
    Si. Un vantaggio che si evidenzia specialmente quando i parametri sono classi, la cui copia è onerosa.
    Altrimenti non capisco perchè non passare proprio un indirizzo che però magari può dare problemi a runtime se per caso puntasse chissà cosa,
    Appunto per non avere problemi a runtime. Un reference è sempre legato a doppio filo a una variabile, pertanto non può andarsene per i fatti suoi. Insomma un reference è per sempre.
    Puoi pensarlo come a un puntatore mascherato con regole molto più ferree.
    codice:
    int i = 10;
    int *p = &i;
    
    int k = 20;
    p = &k; // valido.
    /////////////////////////////
    
    int i = 10;
    int& p = i;
    
    int k = 20;
    p = k; // ERRORE!
    Lo svantaggio di questo è che non si possono avere array di reference e se una classe contiene una variabile reference essa può essere inizializzata solo nella constructor list e non nel corpo del costruttore.

    Il vantaggio è che accedi alla variabile referenziata con una sintassi naturale e con la certezza che sarà sempre legata a qualcosa di valido (non come un puntatore di cui occorre controllare che sia non NULL per poi dereferenziarlo).
    Ultima modifica di shodan; 17-01-2014 a 11:50
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.