Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
6. Wenn Operationen verkettet werden sollen, ist das Objekt selbst per Referenz zurückzugeben. In C++ sind Anweisungen wie a = b = c; erlaubt und üblich, ebenso wie die schon bekannte Verkettung von Ausgaben mehrerer Variablen, etwa cout
(a) Diese Anweisung wird von links abgearbeitet. a.add(b) muss dann ein Objekt zurückliefern, auf das dann add(c) angewendet wird. Auf einen Rückgabetyp void lässt sich keine Funktion anwenden. Dieses zurückgegebene Objekt ist das durch die Addition veränderte Objekt a, hier a genannt. Aus a.add(b) ergibt sich also a, für das add(c) aufgerufen wird. In Einzelschritte zerlegt: a.add(b) } {{ } .add(c); a.add(c); Damit ergib sich eine veränderte Implementation (und Deklaration) für add(): // veränderter Rückgabetyp: rational& rational::add(const rational& r) { } zaehler = zaehler*r.nenner + r.zaehler*nenner; nenner kuerzen(); = nenner*r.nenner; // Rückgabe des Objekts, für das die Methode aufgerufen wird: return *this; Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 195 zurück Ende
- Seite 143 und 144: 5. Objektorientierung 1 - Abstrakte
- Seite 145 und 146: } // ... Protokollierung Punkt einP
- Seite 147 und 148: Eigenschaften: • Der Sinn liegt d
- Seite 149 und 150: class Klassenname { public: Typ Ele
- Seite 151 und 152: Anwendung: // ort1main.cpp #include
- Seite 153 und 154: aendern() soll Änderungen der Koor
- Seite 155 und 156: 2. Deklaration und Definition inner
- Seite 157 und 158: 5.3 Initialisierung und Konstruktor
- Seite 159 und 160: 5.3.2 Allgemeine Konstruktoren Allg
- Seite 161 und 162: Initialisierung mit Listen Beispiel
- Seite 163 und 164: }; private: int xKoordinate, yKoord
- Seite 165 und 166: 5.3.3 Kopierkonstruktor engl.: copy
- Seite 167 und 168: Übergabe von Objekten an eine Funk
- Seite 169 und 170: Zahl bilden int Koordinate = 0; whi
- Seite 171 und 172: Verhindern impliziter Typwandlungen
- Seite 173 und 174: Folgende Funktionen sollen von der
- Seite 175 und 176: Beschränkungen und Hinweise - Kür
- Seite 177 und 178: Möglichkeiten für Operationen mit
- Seite 179 und 180: void eingabe(); void ausgabe() cons
- Seite 181 und 182: 5.4.3 Implementation void rational:
- Seite 183 und 184: void rational::sub(const rational&
- Seite 185 und 186: long ggt(long x, long y) { // wird
- Seite 187 und 188: ational mult(const rational& a, con
- Seite 189 und 190: 5.6 Faustregeln zur Konstruktion vo
- Seite 191 und 192: Regeln: 1. Die geplante Anwendung b
- Seite 193: 5. Die Art der Übergabe eines Obje
- Seite 197 und 198: Natürlich kann von den Empfehlunge
- Seite 199 und 200: class Beispiel { int zahl; public:
- Seite 201 und 202: 5.8 Wie kommt man zu Klassen und Ob
- Seite 203 und 204: 5.8.1 Einige Analyse-Überlegungen
- Seite 205 und 206: 6. Intermezzo: Zeiger - Zeiger und
- Seite 207 und 208: . 99 . . 10123 . Adresse Name 10122
- Seite 209 und 210: int *ip2 = &i; bewirkt: ip ip2 ❩
- Seite 211 und 212: NULL-Zeiger Eigenschaften: • Ein
- Seite 213 und 214: . Index 17 35 112 -3 1000 . 0 1 2 3
- Seite 215 und 216: Zeiger und Arrays Zeiger und Arrays
- Seite 217 und 218: sizeof funktioniert jedoch nicht be
- Seite 219 und 220: 6.3 C-Zeichenketten C-Zeichenkette
- Seite 221 und 222: Vordefinierte Funktionen: Header #
- Seite 223 und 224: char-Arrays // Definition und Initi
- Seite 225 und 226: Beispiele: Schleifen mit Strings St
- Seite 227 und 228: Strings kopieren char* original = "
- Seite 229 und 230: 6.4 Dynamische Datenobjekte new: Er
- Seite 231 und 232: Dynamisch erzeugte Struktur Erzeugu
- Seite 233 und 234: 6.4.1 Freigeben dynamischer Objekte
- Seite 235 und 236: • Mit new erzeugte Objekte unterl
- Seite 237 und 238: 6.5 Mehrdimensionale C-Arrays 6.5.1
- Seite 239 und 240: Arrays als Funktionsparameter C-Arr
- Seite 241 und 242: void Tabellenausgabe2D(int (*T)[3],
- Seite 243 und 244: Funktion für statische zwei-dimens
(a) Diese Anweisung wird von links abgearbeitet. a.add(b) muss<br />
dann ein Objekt zurückliefern, auf das dann add(c) angewendet<br />
wird. Auf einen Rückgabetyp void lässt sich keine Funktion<br />
anwenden. Dieses zurückgegebene Objekt ist das durch die<br />
Addition veränderte Objekt a, hier a genannt. Aus a.add(b)<br />
ergibt sich also a, für das add(c) aufgerufen wird. In Einzelschritte<br />
zerlegt:<br />
a.add(b)<br />
} {{ } .add(c);<br />
a.add(c);<br />
Damit ergib sich eine veränderte Implementation (<strong>und</strong> Deklaration)<br />
für add():<br />
// veränderter Rückgabetyp:<br />
rational& rational::add(const rational& r) {<br />
}<br />
zaehler = zaehler*r.nenner + r.zaehler*nenner;<br />
nenner<br />
kuerzen();<br />
= nenner*r.nenner;<br />
// Rückgabe des Objekts, für das die Methode aufgerufen wird:<br />
return *this;<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 195 zurück Ende