El Puntero THIS, programando en C++

Bueno, este post es complementario al curso que puedes seguir en el siguiente enlace: PROGRAMANDO EN C++ 
En realidad es parte de la 3era entrega del tema de PUNTEROS en C++... que estaré subiendo próximamente. Comenzamos!
El puntero THIS:
Como ya sabemos, las clases tienen tanto Datos Miembro, como, Funciones Miembro (o Métodos), hay una característica que todas las funciones miembro poseen, se trata de un parámetro oculto, el Puntero this, este puntero tiene la particularidad de apuntar hacia el objeto  mismo en el que se encuentra oculto. Además como todos los punteros, el puntero this almacena direcciónes de memoria, y es una potente herramienta de programación que en futuros post estaremos viendo más a fondo.
Vamos a ver un ejemplo, de como podemos implementar el puntero this:

      #include <iostream>
      #include <string>
    using namespace std;

      class Automovil //Declaración de Clase 
{
      public:
           Automovil();
           ~Automovil();
           void SetColor(string color) { this->miColor = color; } // el -> ( es el operador "apunta a")
           string GetColor() const { return this->miColor; } // utilizamos const porque no deseamos
                                                                                           //cambiar el valor.
           void SetModelo(int modelo) { miModelo= modelo; }
           int GetModelo() const { return miModelo; }
      private:
           string miColor;
           int miModelo;
      };
     //Implementación de Clase.
      Automovil::Automovil()  // En el constructor definimos los valores por defecto.
      {
          miModelo = 1980;
          miColor= "Rojo";
      }
      Automovil::~Automovil()  {}  // El destructor es el predeterminado.
      int main()
      {
           Automovil auto01; // declaramos nuestro nuevo tipo de dato, y creamos un objeto del mismo
           cout << "El Color del automovil es: " << auto01.GetColor() << "\n";
           cout << "El Modelo del automovil es: " << auto01.GetModelo() << "\n";
           auto01.SetColor("Azul"); // asignamos un nuevo color
           auto01.SetModelo(1999); // asignamos un nuevo modelo
           cout << "El Color del automovil es: " << auto01.GetColor() << "\n";
           cout << "El Modelo del automovil es: " << auto01.GetModelo() << "\n";
      return 0;
 }
Como podemos observar en las funciones miembro para Color , utilizamos el puntero this, y aunque en este ejemplo, resulta un tanto trivial su utilización, lo cierto es que puede ser una poderosa herramienta. Por ultimo hay que resaltar, que en caso del puntero this, no es necesario preocuparse por crearlo o borrarlo, ya que el compilador se hace cargo de ello. Con esto concluimos el tema de punteros, aunque, en adelante los seguiremos utilizando, por lo que puedes verificar las lecciones del curso cuando lo creas necesario.

Comentarios

Entradas populares de este blog

Crear la funcion gotoxy(), en dev-c++ ... ejemplo sencillo.

Ejercicio de C++, ejemplo: promedio de un Alumno y la sentencia IF

Como dar formato a los decimales en C++