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

[SOLUCIONADO] Uso del this-> en C++

Estas en el tema de Uso del this-> en C++ en el foro de C/C++ en Foros del Web. No entendi bien por que el profe uso this-> osea es un puntero pero osea no entiendo... en que casos es recomendable usarlo y cuando ...
  #1 (permalink)  
Antiguo 30/09/2013, 22:09
 
Fecha de Ingreso: septiembre-2013
Mensajes: 11
Antigüedad: 10 años, 7 meses
Puntos: 0
Pregunta Uso del this-> en C++

No entendi bien por que el profe uso this-> osea es un puntero pero osea no entiendo... en que casos es recomendable usarlo y cuando no?

Nos dio estos dos ejemplos de su uso..

Caso 1 en constructor:
Plantilla::Plantilla(){

int i,arreglo[5]={1,5,2,4,3};


for(i=0;i<5; i++)
this-> array[i] =arreglo[i] ;

}

Caso 2 en funcion set:
void Ventas::setNumero_vendedor(int numero)
{
this->Numero_vendedor=numero;
}
  #2 (permalink)  
Antiguo 01/10/2013, 12:50
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 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
  #3 (permalink)  
Antiguo 01/10/2013, 17:26
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Uso del this-> en C++

Devolver una referencia a la propia clase es otro de sus usos (muy util con operadores).
  #4 (permalink)  
Antiguo 01/10/2013, 19:37
 
Fecha de Ingreso: septiembre-2013
Mensajes: 11
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Uso del this-> en C++

bastante claro gracias.

Etiquetas: funcion, int, numero, struct
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 20:52.