Para comprender el puntero ‘este’, es importante saber cómo se ven los objetos en las funciones y los miembros de datos de una clase.
- Cada objeto obtiene su propia copia del miembro de datos.
- Acceso total a la misma definición de función que está presente en el segmento de código.
Lo que significa que cada objeto obtiene su propia copia de los miembros de datos y todos los objetos comparten una sola copia de las funciones de los miembros.
Entonces ahora la pregunta es que si solo existe una copia de cada función miembro y es utilizada por varios objetos, ¿cómo se accede y actualizan los miembros de datos adecuados?
El compilador proporciona un puntero implícito junto con los nombres de las funciones como ‘esto’.
El puntero ‘this’ se pasa como un argumento oculto a todas las llamadas a funciones miembro no estáticas y está disponible como una variable local dentro del cuerpo de todas las funciones no estáticas. El puntero ‘este’ no está disponible en las funciones de miembros estáticos, ya que las funciones de miembros estáticos se pueden llamar sin ningún objeto (con el nombre de la clase).
Para una clase X, el tipo de este puntero es ‘X*’. Además, si una función miembro de X se declara como const, entonces el tipo de este puntero es ‘const X *’ (ver este GFact )
delete this;
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA