Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Puntero This

Estas en el tema de Puntero This en el foro de C/C++ en Foros del Web. Podrian porfavor explicar el tema: Puntero This, de manera intuitiva, evitando el engorroso lenguaje de programaciòn que hasta ahora no ha logrado que comprenda el ...
  #1 (permalink)  
Antiguo 12/09/2008, 16:57
 
Fecha de Ingreso: julio-2008
Mensajes: 18
Antigüedad: 15 años, 8 meses
Puntos: 0
Puntero This

Podrian porfavor explicar el tema: Puntero This, de manera intuitiva, evitando el engorroso lenguaje de programaciòn que hasta ahora no ha logrado que comprenda el funcionamiento y la razòn de existir de este tipo de puntero.

Por ejemplo, en el Turorial siguiente:
http://www.conclase.net/c/curso/index.php?cap=031

...dice: "Cada objeto tiene asociado un puntero a si mismo que se puede usar para manejar sus miembros."

*¿Este puntero es colocado por el sistema sin la intervenciòn del usuario?,

*¿Cuando el usuario crea un puntero para un objeto, se estaria apuntando dos veces al mismo objeto,
1)Con el puntero This, y
2)Con el puntero creado por el usuario?

*¿Como se diferencia entre los punteros de diversos objetos si todos se llaman "This"?

Y en general agradeceria cualqueir explicaciòn sobre este Tema.

Gracias.
  #2 (permalink)  
Antiguo 13/09/2008, 03:22
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 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
  #3 (permalink)  
Antiguo 14/09/2008, 00:18
 
Fecha de Ingreso: julio-2008
Mensajes: 18
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Puntero This

Gracias por la explicaciòn.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:59.