++ Operator überladen
Von: Andreas Volz (usenet-spam-trap@brachttal.net) [Profil]
Datum: 21.04.2008 23:09
Message-ID: <20080421230954.2a60da2d@frodo.mittelerde>
Newsgroup: de.comp.lang.iso-c++
Datum: 21.04.2008 23:09
Message-ID: <20080421230954.2a60da2d@frodo.mittelerde>
Newsgroup: de.comp.lang.iso-c++
Hallo,
ich versuche gerade den ++ Operator zu überladen. Unten ist mein
Testprogramm eingefügt.
#include <iostream>
#include <cstdio>
#include <iterator>
#include <algorithm>
#include <string>
#include <list>
using namespace std;
class Integer
{
public:
Integer () {m_value = 0;}
~Integer () {}
void setValue (int value) {m_value = value;}
int getValue () {return m_value;}
int operator ++ ();
int operator ++ (int t);
private:
int m_value;
};
int Integer::operator ++ ()
{
return ++m_value;
}
int Integer::operator ++ (int t)
{
return m_value++;
}
int main ()
{
Integer t;
t.setValue (1);
cout << "t0: " << ++t << endl;
cout << "t1: " << t.getValue () << endl;
cout << "t2: " << t++ << endl;
cout << "t3: " << t.getValue () << endl;
cout << endl;
/////
int i = 1;
cout << "i1: " << ++i << endl;
cout << "i2: " << i << endl;
cout << "i3: " << i++ << endl;
cout << "i4: " << i << endl;
return 0;
}
Die Ausgabe lautet:
t0: 2
t1: 2
t2: 2
t3: 3
i1: 2
i2: 2
i3: 2
i4: 3
Die Logik der Operatoren sollte also passen. Ich frage mich nur wozu ich di
e
Variable t in "int operator ++ (int t);" überhaupt brauche. Der Parameter
scheint
immer '0' zu sein. Wie implementiere ich den Operator richtig?
Gruß
Andreas
--
Technical Blog <http://andreasvolz.wordpress.com/
[ Auf dieses Posting antworten ]Antworten
- Jens Cassel (22.04.2008 17:37)
- Michael Karcher (22.04.2008 17:37)
- Frederik Hohlfeld (22.04.2008 17:45)
