C++ Überladen von Operatoren

Hallo,

könnte mir bitte jemand erklären, wozu und wie man Operatoren in C++ überlädt? Unser Dozent war dazu nicht nämlich leider nicht in der Lage.

Danke, Robert

naja, ueberladen von operatoren
(wie >>, [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

könnte mir bitte jemand erklären, wozu
und wie man Operatoren in C++ überlädt?
Unser Dozent war dazu nicht nämlich
leider nicht in der Lage.

Ich habe da vielleicht noch ein schoenes Beispiel. Ich habe mal eine Klasse XMatrix geschrieben. Das ist eine template Klasse fuer Matrizen. Hier koennen Matrizen verschiedenster Datentypen erzeugt werden, wenn fuer diesen Datentyp alle noetigen Operatoren ueberladen sind. Zum Beispiel kann man dann auch eine Matrix aus Komplexen Zahlen erzeugen (Datentyp complex ist bei vielen Compilern als fertige Klasse mit allen Operatoren da.
z.B.:

XMatrix A(4,5); //Matrix (4X5) aus komplexen Zahlen namens A 

Fuer diese Klasse habe ich die Klammeroperatoren ueberladen.

A[1][2]=complex(4,2); //Wert 4+j2 auf A[1][2] schreiben

Weiterhin habe ich alle moeglichen arithmetischen Operatoren ueberladen. Das schoene daran ist, dass das Formelschreiben sehr einfach wird, und das Aufloesen von mathematischen Ausdruecken vom Compiler-Parser uebernommen wird.
z.B.:

XMatrix A(10,3), B(3,10), C(10,10),D(10,3),D;
. //Matrizen mit irgendwelchen Werten belegen
.
.
D=(A+D)\*B+C+D;

D wird nach allen Regeln der Mathematik aus dem Matrixprodukt von (A+D) und B berechnet. Anschliessend werden die Matrizen C und D dazuaddiert.

Ich denke doch, dass das Sinn macht mit den Operatoren, oder… ???

Tschuess !

Andreas

Dadurch kannst du Funktionen definieren, die für den Compiler ansich nicht logisch wären, z.b. in der Klasse CString kann man auf einmal Strings addieren, also string1 + string2.
Ansich schwachsinnig, aber jeder versteht dass es eine Konkatenation bedeuten soll.