Tipo de puntero ‘this’ en C++

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

Deja una respuesta

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