В функции-члене класса можно непосредственно ссылаться на член класса объекта, для которого вызывается функция-член класса. Например:
class x {
int m;
public:
int readm() { return m; }
};
x aa;
x bb;
void f() {
int a = aa.readm();
int b = bb.readm();
// …
}
Указатель на объект, для которого вызвана функция-член, является скрытым параметром функции. На этот неявный параметр можно ссылаться явно как на this. В каждой функции класса x указатель this неявно описан как x* this;
и инициализирован так, что он указывает на объект, для которого была вызвана функция-член. this не может быть описан явно, так как это ключевое слово. Класс x можно эквивалентным образом описать так:
class x {
int m;
public:
int readm() { return this->m; }
};
Исп-е this при ссылке на член класса не обязательно; использование this- для записи функций-членов класса, кот-е непосредственно обрабатывают указатели.
Ссылка на себя.
24 Фев, 2009
