Перегрузка операторов в C++: перегрузка оператора «++» примерами

В программировании перегрузка операторов позволяет определить поведение таких операторов, как +, -, *и /.для пользовательских типов. Термин «двойная плюс перегрузка» потенциально может относиться к перегрузке оператора ++, который используется для увеличения значения.

Вот пример того, как можно перегрузить оператор ++в C++:

#include <iostream>
class Counter {
private:
    int count;
public:
    Counter(int initialCount = 0) : count(initialCount) {}
// Overloading the ++ operator as a member function
    Counter& operator++() {
        count++;
        return *this;
    }
// Overloading the ++ operator as a friend function
    Counter operator++(int) {
        Counter temp = *this;
        ++(*this);
        return temp;
    }
    int getCount() const {
        return count;
    }
};
int main() {
    Counter c(5);
    // Using the overloaded ++ operator
    ++c;
    std::cout << "Count: " << c.getCount() << std::endl;
    // Using the post-increment operator
    Counter d = c++;
    std::cout << "Count: " << d.getCount() << std::endl;
    std::cout << "Count: " << c.getCount() << std::endl;
    return 0;
}

В приведенном выше примере класс Counterперегружает оператор ++как функцию-член и как дружественную функцию. Функция-член operator++()используется для предварительного приращения, а дружественная функция operator++(int)используется для последующего приращения. Перегруженные операторы увеличивают переменную-член countкласса Counter.