Aquí, veremos cómo usar esta palabra clave en una clase usando un programa C++ . esta palabra clave en C++ es un puntero implícito que apunta al objeto de la clase de la que se llama la función miembro. Cada objeto tiene su propio puntero this. Cada objeto puede referenciarse a sí mismo mediante este puntero.
Hay 4 formas en que esta palabra clave se puede usar en una clase en C++:
- Resuelva el problema de sombreado con esta palabra clave.
- Acceda al objeto que se está ejecutando actualmente usando esta palabra clave.
- Acceda a miembros de datos utilizando esta palabra clave.
- Llamar a funciones miembro usando esta palabra clave.
Comencemos discutiendo estas diferentes formas en detalle.
1. Resuelva el problema de sombreado usando esta palabra clave
El sombreado ocurre cuando hay una variable local que tiene el mismo nombre que una variable de instancia. A continuación se muestra el programa C++ para mostrar cómo se puede usar esta palabra clave para resolver los problemas de sombreado:
C++
// C++ program to use this keyword // to resolve shadowing issue #include <iostream> using namespace std; class GFG { string name; public: GFG(string name) { // Use this keyword to initialize value // of class member name as the parameter // name passed in the constructor. this->name = name; } void display() { cout << name << endl; } }; // Driver code int main() { GFG gfg("GeeksforGeeks"); gfg.display(); return 0; }
GeeksforGeeks
2. Acceda al objeto que se está ejecutando actualmente usando esta palabra clave
Esta palabra clave se puede usar para enstringr funciones y eliminar objetos a través de sus funciones miembro.
Ejemplo 1: a continuación se muestra el programa C++ para usar esta palabra clave para eliminar el objeto usando sus funciones miembro.
C++
// C++ program to use this keyword // to delete object of the class #include <iostream> using namespace std; class GFG { string name; public: GFG(string name) { // Use this keyword to assign value // of class member name as the // parameter name passed in the // constructor. this->name = name; } void display() { cout << name << endl; } void del() { // Use this keyword to delete // the object delete this; } }; // Driver code int main() { GFG *gfg = new GFG("GeeksforGeeks"); gfg->display(); gfg->del(); return 0; }
GeeksforGeeks
Ejemplo 2: a continuación se muestra el programa C++ para usar esta palabra clave para acceder al objeto que se está ejecutando actualmente para enstringr llamadas a funciones:
C++
// C++ program to use this keyword to // access currently executing object // to chain function calls: #include <iostream> using namespace std; class GFG { string name; int data; public: GFG setName(string name) { this->name = name; return *this; } GFG setData(int data) { this->data = data; return *this; } void display() { cout << name << endl; cout << data << endl; } }; // Driver code int main() { // Creating object GFG gfg; // chaining function calls gfg = gfg.setName("GeeksforGeeks").setData(20); gfg.display(); return 0; }
GeeksforGeeks 20
3. Acceder a miembros de datos usando esta palabra clave
A continuación se muestra el programa C++ para usar esta palabra clave para acceder al miembro de datos del objeto que se está ejecutando actualmente:
C++
// Below is the C++ program to use // this keyword to access the data // members of currently executing // object #include <iostream> using namespace std; class GFG { string name; public: GFG(string name) { // Initialize value of class member // name as the parameter name passed // in the constructor. this->name = name; } void display() { // Accesses string data member name cout << this->name << endl; } }; // Driver code int main() { GFG gfg("GeeksforGeeks"); gfg.display(); return 0; }
GeeksforGeeks
4. Llamar a funciones miembro usando esta palabra clave
A continuación se muestra el programa C++ para utilizar esta palabra clave para llamar a las funciones miembro asociadas con los objetos que se ejecutan actualmente:
C++
// C++ program to use this keyword // to call member functions of currently // executing objects #include <iostream> using namespace std; class GFG { string name; public: GFG(string name) { // Initialize value of class member // name as the parameter name passed // in the constructor. this->name = name; } void displayX(int); void display(); }; void GFG :: displayX(int x) { for (int i = 0; i < x; i++) { // Access member functions of currently // executing object this->display(); } } void GFG :: display() { // Accesses string data member name cout << this->name << endl; } // Driver code int main() { GFG gfg("GeeksforGeeks"); gfg.displayX(4); return 0; }
GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks
Publicación traducida automáticamente
Artículo escrito por ishankhandelwals y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA