Postfix/prefix

hallo,

Ich habe eine Frage bezüglich der Inrement/Dekrementoperatoren.
Und zwar möchte ich die operatoren überladen, also zB so:

class ABC {
public:
 void operator++()
 { x++; }
 void operator--()
 { x--; }
private:
 int x;
};

Meine Frage ist jetzt, wie kann ich die zwischen Postfix und Prefixform unterscheiden, denn wenn ich z.B. sowas mache mit der Klasse:

void macheEtwas() {
 ABC obj;
 obj++;
 obj--;
}

Dann kommt eine Warnung des Compilers:

warning C4620: no postfix form of 'operator ++' found for type 'ABC', using prefix form

Kann mir da jemand helfen? :smile:

MfG
DDR-RAM

Hallo DDR-RAM,

Hier eine Kopie von dem was man in der Hilfe von VC6 unter „C4620“ so findet:

Compiler-Warnung (Stufe 1) C4620
Keine Postfix-Form des Operators '++' für den Typ 'Typ' gefunden, Präfix-Form verwendet

Für den angegebenen Typ wurde keine Postfix-Variante des Inkrement-Operators (++) definiert. Der Compiler verwendet statt dessen den überladenen Präfix-Operator.

Diese Warnung kann vermieden werden, indem ein ++-Postfix-Operator definiert wird. Dies kann durch die Erstellung einer Zwei-Argument-Version des ++-Operators erfolgen, wie im folgenden Beispiel:

class prepost
{
public:
 prepost operator++ ()
 {
 // Inline-Präfix-Routine
 };
 **prepost operator++ ( int )  
 {  
 // Inline-Postfix-Routine  
 };** }

MfG Peter(TOO