Duplicar posibles:
Why 'this' is a pointer and not a reference?¿Por qué es un puntero
¿Por qué es this
un puntero, en lugar de referencia rhan? ¿Alguna vez puede ser NULL
?
Duplicar posibles:
Why 'this' is a pointer and not a reference?¿Por qué es un puntero
¿Por qué es this
un puntero, en lugar de referencia rhan? ¿Alguna vez puede ser NULL
?
¿Por qué "este" no es una referencia?
Véase la respuesta de Bjarne here
Debido a que "este" se introdujo en C++ (realmente en C con Clases) antes de añadir referencias. Además, elegí "esto" para seguir el uso de Simula, en lugar del uso (posterior) de Smalltalk del "yo".
¿Por qué es
this
un puntero?
Debido a que es, y es sólo la forma en el lenguaje de programación fue diseñado. (Creo que también es porque quedó de C, pero no estoy seguro).
en lugar de una referencia?
Si necesita una esta referencia, utilice *this
.
puede nunca ser
NULL
?
... no. ¿Como puede ser?
es una pregunta razonable: si nunca puede ser nula o reasignada, ¿por qué no es una referencia? –
¿por qué no puede ser un puntero? No hay ninguna ventaja de que sea porque la conversión entre involucra un carácter (* o &). –
@AlexanderRafferty Porque la forma C++ pasa referencias. – asaelr
Puede ser nulo. Imagine el caso cuando se invoca un método * no virtual * ... bueno, NULL :-) Esto podría estar dentro del dominio de C++ UB, pero lo he visto antes. –
Duplicado exacto de [¿Por qué 'esto' es un puntero y no una referencia?] (Http://stackoverflow.com/questions/645994/why-this-is-a-pointer-and-not-a-reference) y un puñado de otras preguntas. –
@pst: Sí, eso sería bueno en el ámbito del comportamiento indefinido. –