2012-08-25 20 views
6

Scommetto che probabilmente è stato chiesto prima, ma poiché il riferimento (int & nome) è preso come il conteggio dei riferimenti degli utenti, non è stato possibile trovare una singola cosa.Puntatori intelligenti vs Riferimento

Perché non vi è mai menzione di riferimenti come alterni a puntatori intelligenti? È solo per il caso nullo o c'è qualcos'altro? Quali vantaggi/svantaggi ci sono nell'usare entrambi?

risposta

7

Penso che la tua terminologia sia confusa. Un riferimento e il termine conteggio dei riferimenti non stanno parlando della stessa cosa.

I riferimenti e i puntatori intelligenti, o anche i puntatori del caso, sono molto diversi e non sono intercambiabili.

Un riferimento non può essere ripristinato. Significa che una volta che hai un riferimento, può solo riferirsi alla cosa a cui inizialmente si riferiva. Un riferimento è semplicemente un indirizzo di memoria.

Un puntatore, d'altra parte, punta a un indirizzo di memoria; può essere cambiato in modo che punti a diversi indirizzi di memoria.

Quando qualcuno dice che un puntatore intelligente fa riferimento al conteggio, significa che il puntatore intelligente tiene conto del numero di oggetti che si riferiscono alla memoria puntata dal puntatore intelligente. Questo è diverso da un riferimento.

Spero che questo aiuti.

+0

So bene che il conteggio dei riferimenti e dei riferimenti non è lo stesso. Sono i ricercatori, come Google e quello qui, che non possono vedere la differenza (contesto) e mostrarmi siti che si riferiscono al conteggio dei riferimenti e ai puntatori intelligenti, invece di puntatori intelligenti e di riferimento – efaj

+0

Ma non sapevo che i riferimenti non potevano essere scambiati/scambiati o fatti fare riferimento a qualcos'altro Ora con quello ... è ovvio perché non sostituiscono i puntatori intelligenti. – efaj

Problemi correlati