Middle
Kako preopteretiti operator postfiksnog i prefiksnog inkrementa u C++?
sobes.tech АИ
Одговор од АИ
Operatori inkrementa prefiksni i sufiksni ++ u C++ se preopterećuju pomoću dve različite potpise funkcija članova:
-
Prefiksni inkrement: Vraća referencu na trenutni objekat (
*this) nakon njegove promene.ClassName& operator++() { // Logika prefiksnog inkrementa // Izmena stanja objekta return *this; // Vraća referencu na izmenjeni objekat } -
Postfiksni inkrement: Vraća kopiju objekta pre njegove promene. Razlikuje se po prisustvu fiktivnog parametra
int.ClassName operator++(int) { ClassName temp = *this; // Sačuvaj trenutno stanje // Logika postfiksnog inkrementa // Izmena stanja objekta return temp; // Vraća sačuvanu kopiju }
| Tip inkrementa | Potpis funkcije | Vraćena vrednost | Parametri |
|---|---|---|---|
| Prefiks | ClassName& operator++() |
Referenca na izmenjeni objekat | Nema |
| Postfiks | ClassName operator++(int) |
Kopija objekta pre promene | Fiktivni int |