Tema: Puntero This
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/09/2008, 03:22
Avatar de Mort20
Mort20
 
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Puntero This

Es fácil, supon una clase con el entero privado "numero" y la función publica "función()".

Des del main, para llamar a "funcion()" de nuestro objeto hacemos
Código:
objeto.funcion();
Pero cuando estamos en funcion() no ves el objeto implícito porque no tiene nombre asignado, sin embargo ha sido llamado a través de un objeto. Entonces para acceder a los miembros de este objeto que no vemos se usa el puntero this. "this->numero" daría el numero del objeto que ha llamado a funcion().
En este caso, pero, como no se pasa ningún parametro del tipo del objeto, con escribir "numero" nos basta.

Sin embargo supon una funcion cuyo prototipo sea "funcion(const objeto& a, const objeto& b)".
Cuando un objeto implícito llama a la función, no puedes usar "numero" porque no puedes saber a cual te referies, ¿al de a, al de b, al del implícito?
Por ello aquí es necesario usar this->numero para llamar al numero del objeto implícito. Y para a y b usar a.numero o b.numero, ya que son del mismo tipo de la clase, si no deberíamos llamar a sus funciones públicas.

Espero que me haya explicado.
__________________
Un Lannister siempre cumple sus promesas