Middle
Πώς υπερφορτώνουμε τον τελεστή προσαύξησης σε postfix και prefix σε 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 |