Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
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
- Seite 323 und 324: GrOptr = &GrO; // Zeiger auf GrO ri
- Seite 325 und 326: Aus diesen Punkten lässt sich eine
- Seite 327 und 328: Es gibt Kreise, Rechtecke, Linien,
- Seite 329 und 330: Bezugspunkt ermitteln Ort Bezugspun
- Seite 331 und 332: } // leerer Code-Block double Laeng
- Seite 334 und 335: #ifndef quadrat_h #define quadrat_h
- Seite 336 und 337: int i = 0; while(GraphObjZeiger[i])
- Seite 338 und 339: class Abgeleitet : public Basis { /
- Seite 340 und 341: ... immer wenn Basisklassenzeiger o
- Seite 342 und 343: #ifndef beschrif_h #define beschrif
- Seite 344 und 345: virtual void zeichnen() const { Rec
- Seite 346 und 347: 8.6.1 Namenskonflikte cout
- Seite 348 und 349: Subobjekt1: GraphObj Subobjekt2: Gr
- Seite 350 und 351: eschriftetesRechteck(const Ort &O,
- Seite 352 und 353: 8.6.3 Virtuelle Basisklassen und In
- Seite 354 und 355: class Unten: public Links, public R
- Seite 356 und 357: class Unten: public Links, public R
- Seite 358 und 359: class Rechteck { public: virtual vo
- Seite 360 und 361: Ohne Vererbung (Delegation): class
- Seite 362 und 363: 8.7.2 Der Teil und das Ganze „Tei
- Seite 364 und 365: } Bekanntenkreis.Hinzufuegen(&P); S
- Seite 366 und 367: 8.7.4 „Benutzt“-Beziehung Ein O
- Seite 368 und 369: ReturnDatentyp Klassenname::operato
- Seite 370 und 371: 1. Der Aufruf wird entsprechend der
- Seite 372 und 373: drei Fälle für gemischte Datentyp
- Seite 376 und 377: Mit Typumwandlungskonstruktor Wenn
- Seite 378 und 379: 9.1.2 Ausgabeoperator
- Seite 380 und 381: ✬ ✩ Vektor-Objekt start xDim (=
- Seite 382 und 383: Zuweisungsoperator Vektor& operator
- Seite 384 und 385: template inline void Vektor::init(c
- Seite 386 und 387: Zuweisung von Vektorelementen per W
- Seite 388 und 389: Möglicher Einsatz: Vektor v(5); //
- Seite 390 und 391: template inline Vektor &Vektor::ope
- Seite 392 und 393: 9.2.3 Mathematische Vektoren Vektor
- Seite 394 und 395: 9.2.4 Multiplikations-Operator Anwe
- Seite 396 und 397: * Operator für den Fall v1 = zahl*
- Seite 398 und 399: Um bereits vor der Konstruktion ein
- Seite 400 und 401: void Datum::aktuell() { // Systemda
- Seite 402 und 403: Der Postfix-Inkrementierungsoperato
- Seite 404 und 405: datum.h #include class Datum { // .
- Seite 406 und 407: Es ist sowohl die implizite als auc
- Seite 408 und 409: 3. errno setzen 4. Fehlerbehandlung
- Seite 410 und 411: Wege zur Fehlerbehandlung: • Den
- Seite 412 und 413: gegebenenfalls weitere catch-Blöck
- Seite 414 und 415: 10.1.2 Exception-Hierarchie in C++
- Seite 416 und 417: Breymann C++, c○ Hanser Verlag M
- Seite 418 und 419: Große Teile des Konzepts sind durc
- Seite 420 und 421: 11.1 Die C++ Standardbibliothek, ge
- Seite 422 und 423: 11.1.1 Abstrakte und implizite Date
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