5.3. Ukazatel this

Časová náročnost
Časová náročnost: 6 minut

Ukazatel this je speciálním ukazatelem jazyka C++. Je to ukazatel na objekt vytvářející volání a automaticky se předává funkci při jejím prvním volání. Také platí, že ukazatel this je předáván pouze členským funkcím. Spřátelené funkce ukazatel this mít nebudou.

Následující příklad vytváří jednoduchou třídu inventory a využívá ukazatele this.

src/5_5.cpp
Příklad 5.5.
#include <iostream.h>
#include <string.h>

class inventory {
  char item[20];
  double cost;
  int on_hand;
public:
  inventory(char *i, double c, int o)
  {
     strcpy(this->item, i); // pristup clenu
     this->cost = c;  // pres ukazatel this
     this->on_hand = o; 
   }
   void show();
};

void inventory::show()
{
  cout << this->item; // pro pristup k clenum
  cout << ": $" << this->cost;
  cout << "  pocet kusu: " << this->on_hand << "\n";
}

int main()
{
  inventory ob("cena", 4.95, 4);

  ob.show();

  return 0;
}


Nyní jsou členské proměnné dosažitelné přímo přes pointer this. V rámci show() jsou tedy tyto řádky totožné:
const = 12.25;
this->const = 12.25;


upozornění Ukazatel this má velké možnosti použití, například u přetěžování. Je důležité si uvědomit, že standardně všechny členské funkce automaticky přebírají ukazatel na volající objekt.