Tecnología

Inicio

Cómo utilizar el puntero "this" en C ++

En un programa en C ++, si se crea un objeto de la clase X, a continuación, puede obtener la dirección de A usando el puntero "this". La dirección está disponible como una variable local en las funciones miembro no estáticos de X, y su tipo es const X *. El puntero "this" funciona porque C ++ crea instancias de sus miembros de datos, y mantiene una copia de cada función miembro.

Instrucciones

1 Utilice el puntero "this" para descubrir la ubicación de una instancia de clase. Al igual que cualquier puntero, que almacena una dirección. función miembro GetAddress () de clase de C ++ X devuelve la dirección de un ejemplo dado de clase X:

clase X {

público:

X * const GetAddress () {const

devolver este;

};

2 funciones miembro de acceso o los datos de los miembros dentro de una función miembro de la clase con la palabra "this" y el "->" operador. El siguiente ejemplo puede funcionar sin "this->". Pero si la biblioteca matriz tiene una clase padre con los mismos nombres de los miembros, "this->" deja claro que lo que se invoca pertenece a la clase actual, y no su padre:

clase Matrix {

int filas, collados;

público:

Matrix (): filas (0), cols (0) {

this-> Init ();

}

~ Matrix ();

int GetRows () {const

volver this-> filas;

}

privado:

void Init ();

};

3 Estudiar una clase que tiene la sobrecarga de operadores y estudiar el uso de este. El siguiente fragmento de código muestra cómo puede ser redefinido:

const X * this-> operador () {

devolver este;

}

Consejos y advertencias

  • Mantenga estas reglas en cuenta cuando se trabaja con un puntero: no intente cambiar las direcciones; que son inmodificables; no incluyen direcciones cada vez que se calcula el tamaño de un objeto; no se puede acceder a una dirección de métodos estáticos.