07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 122<br />

↑↑ △! Manchmal kann eine solche implizite Typkonversion unerwünscht sein. Sie kann unterbunden<br />

werden durch den 15 FunktionsSpezifizierer explicit C++(neu) (nur in der Funktionsdeklaration<br />

innerhalb der Klassendefinition, nicht noch einmal bei einer Funktionsdefinition<br />

außerhalb zu wiederholen). Explizite Typkonversion ist dann weiterhin noch möglich.<br />

(c) ↑↑ Auch die umgekehrte Typkonversion – von dem vorgegebenen Klassentyp in einem<br />

beliebigen Typ – kann definiert werden durch eine sog. Typkonversionsfunktion; dieses ist<br />

in (Cpp/Kap. 1, 32 DirekterDeklarator, 5. Zeile) unter KonversionsFunktionsName angedeutet.<br />

11.2 Überladen von Operatoren<br />

(11.20) Übb Um benutzerdefinierte Typen den eingebauten Typen gleichzustellen, gibt es in C ++<br />

das äußerst mächtige Mittel, Operatoren zu überladen, d. h. ihnen in Zusammenhang mit<br />

einem (oder zwei) benutzerdefinierten Typen eine sinnvolle Bedeutung zu geben. Dadurch<br />

ist es beispielsweise möglich, sich einen Typ Komplex (vgl. (9.11Bsp)) zu definieren und dann<br />

wie in der Mathematik üblich die Gültigkeit der binären Operatoren +, -, *, / auf die<br />

Addition, Subtraktion, Multiplikation und Division solcher komplexer Zahlen auszudehnen.<br />

Diese Überladung kann die übliche Bedeutung der Operatoren in Zusammenhang mit eingebauten<br />

Typen nicht verändern, sondern nur für neue benutzerdefinierte Typen (d. h. in<br />

der Praxis für Klassen und/oder für Aufzählungstypen (12.21)).<br />

(11.21)<br />

Um die Überladung zu definieren, wird für Operatoren eine Funktionsschreibweise eingeführt<br />

(11.22), d. h. der Funktions- ” Name“ mit Parametern und Rückgabetyp (Ergebnistyp der Operation).<br />

Diese Funktion kann als globale Funktion eingeführt werden (11.23). Dieses wird beispielsweise<br />

häufig für den Eingabeoperator >> und den Ausgabeoperator

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!