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?
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
};
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.
Postfix hat ein int-Argument in der Signatur.
Class& operator++(); //Prefix
Class operator++(int); //Postfix
.