Wir implementieren obige CVector-Klasse mit weiteren Operatoren:
Bemerkung: insbesondere auch die Operatoren ++ und - - können überladen werden, den Unterschied zwischen Postfix und Präfix erzeugt man durch Angabe eines ``Platzhalter'' Parameters vom Typ int beim Postfix-Operator.
Beispiel: Überladen von []
Deklaration:
class CVector { ... double operator[]( int i ) const; ... };
Implementierung:
double CVector::operator[]( int i ) const { if(i<0 || i>=dimension) { cout << "index " << i << " out of range " << "for dimension " << dimension << endl; exit(1); } return(vector[i]); }
Damit können wir folgendes schreiben:
CVector v; double d; ... d=v[2]; ...aber folgendes nicht:
... v[2]=17.0; ...
Wenn wir jedoch den Rückgabetyp des Operators in eine Referenz umwandeln geht dies auch! und wir können die Komponenten des Vektors setzen. Deklaration:
class CVector { ... double& operator[](int i) const; ... };