Middle
Kuidas üle koormata postfix- ja prefix-inkrementide operaatorit C++-is?
sobes.tech AI
Vastus AI-lt
C++ keeles eelsõnalise ja järelõnese ++ operaatori ülekirjutatakse kahe erineva liikmefunktsiooni signatuuriga:
-
Eelsõnaline suurendamine: Tagastab viite praegusele objekti (
*this) pärast selle muutmist.ClassName& operator++() { // Eelsõnalse suurendamise loogika // Objekti oleku muutmine return *this; // Tagastab viite muudetud objekti } -
Järelõnese suurendamine: Tagastab objekti koopiana enne selle muutmist. Erineb fiktiivse parameetri
intolemasoluga.ClassName operator++(int) { ClassName temp = *this; // Salvestab praeguse oleku // Järelõnese suurendamise loogika // Objekti oleku muutmine return temp; // Tagastab salvestatud koopia }
| Suurendamise tüüp | Funktsiooni signatuur | Tagastatav väärtus | Parameetrid |
|---|---|---|---|
| Eelsõnaline | ClassName& operator++() |
Muudetud objekti viide | Puudub |
| Järelõnese | ClassName operator++(int) |
Enne muutmist objekti koopia | Fiktiivne int |