Breymann. C++ Einführung und professionelle Programmierung

Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung

vred.bioinf.uni.sb.de
von vred.bioinf.uni.sb.de Mehr von diesem Publisher
17.11.2014 Aufrufe

Ohne Typumwandlungskonstruktor Um gemischte Datentypen zu erlauben, fügen wir zwei Deklarationen hinzu, mit denen Operationen wie z = x + 3 oder z = 3 + y bearbeitet werden können: rational operator+(long, const rational&); rational operator+(const rational&, long); Die Implementierung könnte wie folgt aussehen: rational operator+( const rational& a, } rational t; const rational& b) { t.zaehler = a.Zaehler()*b.Nenner() + b.Zaehler()*a.Nenner(); t.nenner t.kuerzen(); return t; = a.Nenner()*b.Nenner(); Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 374 zurück Ende

ational operator+(long a, const rational& b) { rational t; t.definiere(a, 1); // t wird zu (a/1) return t+b; // Aufruf von +(rational, rational) } rational operator+(const rational& a, long b) { return b+a; // Aufruf von +(long, rational) // durch vertauschte Reihenfolge } Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 375 zurück Ende

Ohne Typumwandlungskonstruktor<br />

Um gemischte Datentypen zu erlauben, fügen wir zwei Deklarationen<br />

hinzu, mit denen Operationen wie z = x + 3 oder z = 3 + y bearbeitet<br />

werden können:<br />

rational operator+(long, const rational&);<br />

rational operator+(const rational&, long);<br />

Die Implementierung könnte wie folgt aussehen:<br />

rational operator+( const rational& a,<br />

}<br />

rational t;<br />

const rational& b) {<br />

t.zaehler = a.Zaehler()*b.Nenner() + b.Zaehler()*a.Nenner();<br />

t.nenner<br />

t.kuerzen();<br />

return t;<br />

= a.Nenner()*b.Nenner();<br />

<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />

Inhalt ◭◭ ◭ ◮ ◮◮ 374 zurück Ende

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!