Middle
Как да пренапишем оператора за постфиксно и префиксно увеличение в C++?
sobes.tech AI
Отговор от AI
Операторите за префиксно и постфиксно увеличение ++ в C++ се препокриват чрез две различни сигнатури на член-функции:
-
Префиксно увеличение: Връща препратка към текущия обект (
*this) след неговата промяна.ClassName& operator++() { // Логика на префиксното увеличение // Промяна на състоянието на обекта return *this; // Връща препратка към променения обект } -
Постфиксно увеличение: Връща копие на обекта преди неговата промяна. Различава се по наличието на фиктивен параметър
int.ClassName operator++(int) { ClassName temp = *this; // Запазва текущото състояние // Логика на постфиксното увеличение // Промяна на състоянието на обекта return temp; // Връща запазеното копие }
| Тип увеличение | Подпис на функцията | Връщана стойност | Параметри |
|---|---|---|---|
| Префиксно | ClassName& operator++() |
Препратка към променения обект | Няма |
| Постфиксно | ClassName operator++(int) |
Копие на обекта преди промяната | Фиктивен int |