Wie unterscheidet man (beim Überladen) zwischen Präfix- und Postfix-Formen von operator++? (C++)

Lesezeit: 1 Minute

Weil ich die überladen habe operator++ für eine Iteratorklasse

template<typename T>
typename list<T>::iterator& list<T>::iterator::operator++()
{
    //stuff
}

Aber wenn ich es versuche

list<int>::iterator IT;
IT++;

Ich bekomme eine Warnung, dass es kein Postifx gibt ++, mit Präfix-Formular. Wie kann ich die Präfix-/Postifx-Formulare gezielt überladen?

Wie unterscheidet man beim Uberladen zwischen Prafix und Postfix Formen von
Zaratustra

http://www.devx.com/tips/Tip/12515

class Date {
    //...
    public:
    Date& operator++(); //prefix
    Date& operator--(); //prefix
    Date operator++(int unused); //postfix
    Date operator--(int unused); //postfix
};

  • Postfix-Operatoren sollten nach Wert zurückgeben, nicht nach Referenz. Ich denke, es kann sehr seltsame Situationen geben, in denen sie eine Referenz zurückgeben können, aber was tun? Nicht das, weil es inkrementiert wurde…

    – Steve Jessop

    21. Mai ’09 um 20:15

Wie unterscheidet man beim Uberladen zwischen Prafix und Postfix Formen von
Daniel Earwicker

Schreiben Sie eine Version derselben Operatorüberladung, aber geben Sie ihr einen Parameter vom Typ int. Sie müssen nichts mit dem Wert dieses Parameters tun.

Wenn Sie sich für die Entstehungsgeschichte dieser Syntax interessieren, einen Ausschnitt davon gibt es hier.

Wie unterscheidet man beim Uberladen zwischen Prafix und Postfix Formen von
RC.

Postfix hat ein int-Argument in der Signatur.

Class& operator++();    //Prefix 
Class  operator++(int); //Postfix 

alles zum Thema Bedienerüberlastung
http://www.parashift.com/c++-faq-lite/operator-overloading.html

.

342070cookie-checkWie unterscheidet man (beim Überladen) zwischen Präfix- und Postfix-Formen von operator++? (C++)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy