Programa C++ para mostrar el uso de esta palabra clave en clase

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++:

  1. Resuelva el problema de sombreado con esta palabra clave.
  2. Acceda al objeto que se está ejecutando actualmente usando esta palabra clave.
  3. Acceda a miembros de datos utilizando esta palabra clave.
  4. 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;
}
Producción

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;
}
Producción

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;
}
Producción

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;
}
Producción

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;
}
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *