2010-07-01 8 views
7

Duplicar posibles:
Why ‘this’ is a pointer and not a reference?¿Haría de 'esto' una referencia en lugar de un puntero mejor en retrospectiva?

¿Hay alguna razón para this en C++ a ser un puntero en lugar de una referencia que no sea lengua histórica decisión? Se siente un poco extraño dado que, por ejemplo, el constructor de copias o los operadores de asignación aceptan referencia como "that", no como un puntero.

[honestamente no pude encontrar esta pregunta, a pesar de que se siente como un posible duplicar]

+0

Estoy bastante seguro de que es una víctima, pero estoy teniendo problemas similares encontrarlo ... – Cogwheel

+3

duplicado posible 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) - encontrado a través de [google] (http://www.google.com/search?q=site%3Astackoverflow.com + c% 2B% 2B + por qué + es + esta + no + a + referencia). –

Respuesta

7

De Bjarne Stroustrup de "El Diseño y Evolución de C++", Addison-Wesley, 1994, pp 39-40:

A veces, la gente se pregunta por qué this es un puntero en lugar de una referencia y por qué es llamado this en lugar de self. Cuando this se introdujo en C con Classes, el idioma no tenía referencias, y C++ toma su terminología de Simula en lugar de Smalltalk.

+0

También aquí: http://www2.research.att.com/~bs/bs_faq2.html#this –

+0

Gracias, esa es la respuesta. – doublep

Cuestiones relacionadas