| Č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.
| 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;
|
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.
|