complex
), so ist dieser Operator
für jeden Datentyp, auf den er zusammen mit dem Objekt angewendet
werden soll, einzeln zu definieren:
class complex {
// ...
public:
// ...
complex operator*(complex);
// Multiplikation mit einem complex-Datentyp
complex operator*(double);
// Multiplikation mit einem double
complex operator*(int);
// Mutltiplikation mit einem Integer
...
}
Da der Implementierungsaufwand bereits in diesem einfachen Beispiel sehr
schnell anwachsen kann, behilft man sich mit der Möglichkeit der
Kapitel 6: impliziten Typumwandlung,
Casting)
. Diese basiert
darauf, den Datentyp des zweiten Operanden (bei binären Operatoren)
in den benötigten Datentyp zu transformieren, wann immer dies sinnvoll
und möglich ist.