Указатель this в C++: простое и эффективное использование

Указатель this — простая, но очень полезная концепция в C++, упрощающая код. Рассмотрим её на практике.

Создание класса и методов

Создадим класс Test:

class Test {
public:
    int a, b, c;

    void set(int a, int b, int c) {
        this>a = a;
        this>b = b;
        this>c = c;
    }

    void get() {
        std::cout << "a = " << a << std::endl;
        std::cout << "b = " << b << std::endl;
        std::cout << "c = " << c << std::endl;
    }
};

Класс содержит три переменные (a, b, c) и два метода: set для присвоения значений и get для вывода значений на экран.

Проблема с именованием переменных

В методе set параметры имеют те же имена, что и переменные класса. Запись a = a; некорректна: компилятор не может различить переменные.

Решение с помощью указателя this

Указатель this указывает на адрес объекта класса. Он позволяет явно обращаться к переменным класса, устраняя неоднозначность:

void set(int a, int b, int c) {
    this>a = a;
    this>b = b;
    this>c = c;
}

Теперь this->a обозначает переменную класса, а a — параметр метода.

Использование указателя this

Создадим объект класса Test и вызовем методы:

int main() {
    Test t;
    t.set(12, 23, 1);
    t.get();
    return 0;
}

Программа скомпилируется и корректно отработает, выводя значения переменных.

Преимущества использования указателя this

this позволяет избежать изобретения дополнительных имён для переменных, улучшая читаемость и упрощая код. Кроме того, он позволяет избежать создания ссылок на класс.

Указатель this — важный инструмент в C++, упрощающий работу с классами и методами, особенно при совпадении имён переменных и параметров. Его использование делает код чище и понятнее.

Что будем искать? Например,программа