search

Ключевое слово this

Ключевое слово this — это указатель на объект, который вызывает функцию-член.

При каждом вызове функции-члена ей автоматически передается указатель, именуемый ключевым словом this, на объект, для которого вызывается эта функция. Указатель this — это неявный параметр, принимаемый всеми функциями-членами. Следовательно, в любой функции-члене указатель this можно использовать для ссылки на вызывающий объект.

Как вы знаете, функция-член может иметь прямой доступ к закрытым (private) членам данных своего класса


Например, у нас определен такой класс.
class cl {
int i;
void f() { ... };
// . . .
};
В функции f() можно использовать следующую инструкцию для присваивания члену i
значения 10.
i = 10;
В действительности предыдущая инструкция представляет собой сокращенную форму
следующей.
this->i = 10;
Чтобы понять, как работает указатель this, рассмотрим следующую короткую программу.
#include <iostream>
using namespace std;
class cl {
int i;
public:
void load_i(int val) { this->i = val; } // то же самое, что
i = val
int get_i() { return this->i; } // то же самое, что return i
};
int main()
{
cl o;
o.load_i (100);
cout << о.get_i();
return 0;
}

При выполнений эта программа отображает число 100.
Безусловно, предыдущий пример тривиален, но в нем показано, как можно использовать
указатель this. Скоро вы поймете, почему указатель this так важен для программирования на
C++

Важно! Функции-"друзья" не имеют указателя this, поскольку они не являются членами класса. Только функции-члены имеют указатель this.