Eventuali duplicati:
Why 'this' is a pointer and not a reference?Perché questo è un puntatore
Perché this
un puntatore, di riferimento piuttosto rhan? Può mai essere NULL
?
Eventuali duplicati:
Why 'this' is a pointer and not a reference?Perché questo è un puntatore
Perché this
un puntatore, di riferimento piuttosto rhan? Può mai essere NULL
?
Perché "questo" non è un riferimento?
risposta di See Bjarne here
Perché "questo" è stato introdotto in C++ (realmente in C con le classi) prima sono stati aggiunti riferimenti. Inoltre, ho scelto "questo" per seguire l'uso di Simula, piuttosto che l'uso (successivo) di Smalltalk di "sé".
Perché
this
un puntatore?
Perché è, ed è proprio il modo in cui il linguaggio di programmazione è stato progettato. (Penso che sia anche perché è stato lasciato da C, ma non ne sono sicuro).
anziché un riferimento?
Se avete bisogno di un tale riferimento, utilizzare *this
.
Può mai essere
NULL
?
... no. Come potrebbe essere?
è una domanda ragionevole - se non può mai essere nullo o riassegnato perché non è un riferimento? –
perché non può essere un puntatore? Non c'è alcun vantaggio che sia perché la conversione coinvolge un carattere (* o &). –
@AlexanderRafferty Perché il modo C++ sta passando i riferimenti. – asaelr
Può essere nullo. Immagina il caso in cui un metodo * non-virtuale * viene invocato su ... beh, NULL :-) Questo potrebbe essere benissimo nel regno di UB C++, ma l'ho visto accadere prima. –
Esatto duplicato di [Perché 'this' è un puntatore e non un riferimento?] (Http://stackoverflow.com/questions/645994/why-this-is-a-pointer-and-not-a-reference) e una manciata di altre domande. –
@pst: Sì, sarebbe nel regno del comportamento indefinito. –