operator
Das
Schlüsselwort operator wurde vorgesehen, um bei Klassen
Member-Funktionen mittels der bereits anderweitig für die
Standard-Datentypen eingesetzten
Operatoren + -
* / =+ usw. aufrufen zu können. Dies sieht
natürlich für int, short, usw. anders aus als bei einer eigenen Klasse
MyString oder MyRational usw. Hier folgt
ein konkretes Beispiel für operator+
gezeigt an einer sehr rudimentären Bruchzahlen-Klasse:
#include
<iostream>
#include
<conio.h>
using
namespace std;
class Bruch
{
public:
Bruch(int
a, int b) {zaehler=a; nenner=b;}
int GetZaehler() {return
zaehler;}
int GetNenner() {return
nenner;}
Bruch operator+(int);
Bruch operator+(Bruch);
private:
int zaehler;
int nenner;
};
Bruch Bruch::operator+(int val)
{
zaehler += val * nenner;
return *this;
}
Bruch Bruch::operator+(Bruch val)
{
zaehler = zaehler * val.GetNenner() + val.GetZaehler() * nenner;
nenner = nenner * val.GetNenner();
return *this;
}
int main()
{
Bruch
a(1,2),b(1,4);
a = a +
b;
cout
<< a.GetZaehler() << "/" << a.GetNenner() <<
endl;
a = a +
-5;
cout
<< a.GetZaehler() << "/" << a.GetNenner() <<
endl;
getch();
}
Folgende Operatoren
können hierfür verwendet werden:
new + % ~ > /= |= <<= >= -- ()
delete - ^ ! += %= << == && , []
new[] * & = -= ^= >> != || ->*
delete[] / | < *= &= >>= <= ++ ->