-
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.