Middle
Cum se suprascrie operatorul de incrementare postfix și prefix în C++?
sobes.tech AI
Răspuns de la AI
Operatorii de incrementare prefixate și postfixate ++ în C++ sunt suprasarcinați folosind două semnături diferite ale funcțiilor membre:
-
Incrementarea prefixată: Returnează o referință la obiectul curent (
*this) după modificare.ClassName& operator++() { // Logica incrementării prefixate // Modificarea stării obiectului return *this; // Returnează referința la obiectul modificat } -
Incrementarea postfixată: Returnează o copie a obiectului înainte de modificare. Se diferențiază prin prezența unui parametru fictiv
int.ClassName operator++(int) { ClassName temp = *this; // Salvează starea curentă // Logica incrementării postfixate // Modificarea stării obiectului return temp; // Returnează copia salvată }
| Tipul de incrementare | Semnătura funcției | Valoarea returnată | Parametri |
|---|---|---|---|
| Prefix | ClassName& operator++() |
Referință la obiectul modificat | Niciunul |
| Postfix | ClassName operator++(int) |
Copie a obiectului înainte de modificare | Parametru fictiv int |