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