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[] / | < *= &= >>= <= ++ ->

Übersicht Keywords C++