this — это указатель на текущий объект, который вызывает член класса (метод или член данных). Он используется для доступа к членам объекта изнутри его методов или для передачи самого объекта в методы.
Использование указателя this
- 
Доступ к членам объекта: Указатель thisпозволяет методам класса обращаться к членам объекта, на котором они вызываются.
- 
Возврат объекта из метода: Методы могут возвращать объекты по значению, используя *this.
- 
Неявное использование: thisне требуется явно указывать при вызове методов класса; он используется автоматически.
Пример использования указателя this
#include <iostream>
 
class MyClass {
private:
    int value;
 
public:
    MyClass(int val) : value(val) {}
 
    void printValue() {
        std::cout << "Value: " << this->value << std::endl;
    }
 
    MyClass& increment() {
        ++this->value;
        return *this;
    }
};
 
int main() {
    MyClass obj1(5);
    obj1.printValue(); // Вывод: Value: 5
 
    obj1.increment().increment().printValue();
    // Вывод: Value: 7
 
    return 0;
}Пояснение
- В методе printValue()thisиспользуется для доступа к членуvalueтекущего объекта.
- В методе increment()thisиспользуется для инкрементацииvalueтекущего объекта и возврата ссылки на объект (*this).
Когда используется this?
- Доступ к членам объекта: Для обращения к членам объекта изнутри его методов.
- Возврат объекта по ссылке или указателю: Для возврата самого объекта из методов.
- Множественные вызовы методов: В методах, которые последовательно изменяют или возвращают текущий объект.
Важные моменты
- thisявляется неявным указателем и доступен в любом нестатическом методе класса.
- thisнеобходим, если в методе требуется ссылка или указатель на текущий объект.
- В методе constкthisдобавляется квалификаторconst, что означает, что объект не будет изменен.
class MyClass {
public:
    void constMethod() const {
        // this указывает на константный объект MyClass
    }
};