BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 23 El Puntero this
Teoría: Utilidad del Puntero this


El puntero this es una variable predefinida para todas las funciones u operadores miembro de una clase. Este puntero contiene la dirección del objeto concreto de la clase al que se está aplicando la función o el operador miembro. Se puede decir que *this es un alias del objeto correspondiente.
Conviene tener en cuenta que cuando una función miembro se aplica a un objeto de su clase (su argumento implícito), accede directamente a las variables miembro (sin utilizar el operador punto o flecha), pero no tiene forma de referirse al objeto como tal, pues no le ha sido pasado explícitamente como argumento. Este problema se resuelve con el puntero this. Considérese el siguiente ejemplo:

Class C_Cuenta {
//...
public:
// ...
inline double GetInteres()
{
// Igual a : return Interes;
return this->Interes;
}
// ....
};

En el caso de operadores miembro sobrecargados, el puntero this es la forma que se utiliza para referirse al objeto al que se está aplicando el operador como primer operando.
Hay que señalar que las funciones friend que no son miembros de ninguna clase no disponen de puntero this.

Así al definir las funciones miembro de una clase, a veces es necesario referise al objeto invocador. El apuntador this es un apuntador predefinido que apunta al objeto invocador. Por ejemplo, consideremos una clase como la siguiente:

class Muestra {

public:

...

void mostrar_cosas();

...

private:

int cosas;

...

};

Las siguientes dos formas de definir la función miembro mostrar_cosas son equivalentes:

void Muestra::mostrar_cosas(){

cout << cosas;

}

// No es un estilo recomendable

void Muestra::mostrar_cosas() {

cout << (this->cosas);

}

Cabe señalar que this no es el nombre de un objeto invocador. No podemos alterar el valor de dicho apuntador; siempre apunta al objeto invocador.