jueves, 31 de marzo de 2011

operador this

Apuntador this


Cuando hacemos una llamada a una función miembro de un objeto, el compilador se encargará de pasar implícitamente como argumento: a un apuntador que contenga la dirección del objeto.
A este apuntador se lo llama, el apuntador this (palabra reservada del lenguaje C++). Además de este uso implícito por parte del compilador, se puede usar this explícitamente para referirse al objeto.
Dependiendo del tipo de función en la cual se use this, tendrá diferente tipo.
En una función miembro no constante:
NomObjeto * const
//(apuntador constante a un objeto no constante)
En una función miembro constante:
const NomObjeto * const //(apuntador constante a un objeto constante) 
A continuación veremos cómo utilizar el apuntador this, de manera implícita (como veníamos haciendolo) y de manera explícita.
Cabe recalcar que cuando lo usemos de manera explícita, utilizaremos -> (un menos y el mayor) ya que se trata de un apuntador y no del objeto en sí dónde deberíamos usar simplemente el . (punto).
#include <iostream>
using std::cout;
using std::endl;
class Prueba
{
 public:

  Prueba(int y = 0)
    {
      this->x = y; //usamos apuntador this explicito.

    }
  int Obtener(void)
  {
    return x; //usamos apuntador this implicito

  }
 private:
  int x;
};
int main()
{
  Prueba objeto1(5);
  cout << objeto1.Obtener() << endl;

  return 0;
}
Para compilar este programa utilizaremos:
g++ apuntThis.cpp -o apuntThis.out

4 comentarios:

  1. Este operador, nos permite ver la claridad del problema ya que this.name es el que nos da la claridad del mismo

    ResponderEliminar
  2. este se puede definir dentro de un objeto como un puntero al objeto en que está contenido. Se declara implícitamente como:
    class_name *this

    ResponderEliminar
  3. La referencia permite manipular los datos contenidos en la dirección de memoria guardada en el apuntador. El apuntador guarda una dirección de memoria. La referencia permite que los datos en esa dirección de memoria sean modificados

    ResponderEliminar
  4. La palabra clave this se refiere al objeto de contexto (comúnmente conocido como el objeto actual [current object]). En general, en un método, this se refiere a la invocación del objeto.

    ejemplo:

    this[.Nombrepropiedad]

    ResponderEliminar