Konstruktoren und Operatoren zur Typkonvertierung

Angenommen wir wollen eine Klasse zur Addition zweier rationaler Zahlen (z.B.: $\frac{5}{4} + \frac{3}{2}$) schreiben. Wenn auch Rational + int, int + Rational und Rational + Rational zulassen wollen, dann könnte vorerst die Klasse folgendermaßen deklariert werden:

class Rational
{
public:
  Rational operator + (Rational);
  Rational operator + (int);
  friend Rational operator + (int, Rational);
};

Nachteil: Man benötigt drei Operator-Funktionen, die sehr ähnlich aussehen.

previous up next


© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 12/10/1998