Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/10/2013, 12:50
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: Uso del this-> en C++

El 'this' es un puntero de la clase que lo genera; en algunos casos de codigo que suelen calificarse de mal hechos se usa el this para diferenciar un miembro de la clase de una variable de un metodo

Código C++:
Ver original
  1. class Clase {
  2. public:
  3.     Clase();
  4.  
  5.     int accion() {
  6.         int duplicado = 10;//variable de metodo
  7.         this->duplicado = 11;//miembro de clase
  8.     }
  9.  
  10.     int accion2(int duplicado) {
  11.         this->duplicado = duplicado;
  12.     }
  13.  
  14. private:
  15.     int duplicado;
  16. };

Nota: Lo mas comun es que intente evitarse esta situacion.

Aparte de eso hay gente que le gusta diferenciar las variables miembro de la clase de cualquier otra aunque no se requiera desambiguacion. Por lo que he visto mayormente se declaran las variables miembro con un prefijo y se omite el puntero.

En tus dos ejemplos no hay ambiguedad entre las variables miembro de las clases y los nombres de los argumentos del metodo y la funcion. Me parece que en ambos casos se usa el 'this' para diferenciar visualmente y facilitar la interpretacion del codigo.

Aun asi ten en cuenta que en determinados casos es necesario el uso del puntero 'this' (una busqueda rapida en google te mostrará situaciones necesarias en templates y no se donde mas).

Saludos
vosk