En C++, este puntero se refiere al objeto actual de la clase y lo pasa como parámetro a otro método . ‘ este puntero ‘ se pasa como argumento oculto a todas las llamadas a funciones miembro no estáticas.
Tipo de puntero ‘esto’
El tipo de esto depende de la declaración de la función. El tipo de este puntero es const ExampleClass * o ExampleClass *. Depende de si se encuentra dentro de un método const o no const de la clase ExampleClass .
1) Const EjemploClase:
Si la función miembro de la clase X se declara const , el tipo de esta es const X*
Ejemplo:
CPP
// C++ Program to demonstrate // if the member function of a // class X is declared const #include <iostream> using namespace std; class X { void fun() const { // this is passed as hidden argument to fun(). // Type of this is const X* const } };
2) Clase de ejemplo no constante
Si la función miembro se declara volátil, el tipo de esta es volátil X* como se muestra a continuación
Ejemplo:
CPP
// C++ Program to demonstrate // if the member function is // declared volatile #include <iostream> using namespace std; class X { void fun() volatile { // this is passed as hidden argument to fun(). // Type of this is volatile X* const } };
Si la función miembro se declara const volatile , el tipo de esta es const volatile X*.
Ejemplo:
CPP
// C++ program to demonstrate // if the member function is // declared const volatile #include <iostream> using namespace std; class X { void fun() const volatile { // this is passed as hidden argument to fun(). // Type of this is const volatile X* const } };
Tenga en cuenta que const , volatile y const volatile son calificadores de tipo.
¿Qué son los calificadores de tipo?
Un calificador de tipo es una palabra clave que se aplica a una variable de tipo de datos que da como resultado un tipo calificado.
Por ejemplo, float es el tipo no calificado correspondiente, simplemente un número flotante , mientras que const float es un tipo calificado que representa un número flotante constante.
Nota: el puntero ‘este’ no es un valor l.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA