Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
Anderes Beispiel: Erweiterung der Klasse GraphObj um eine Funktion zeichnen(). Die Implementation ist natürlich für Kreise und Rechtecke verschieden, der Aufruf jedoch (=die Schnittstelle) ist stets der gleiche!(Der Einfachheit halber nur Textausgabe.) #ifndef graphobj_h #define graphobj_h #include #include class GraphObj { // Version 2 public: GraphObj(const Ort &einOrt) : Referenzkoordinaten(einOrt) {} // allg. Konstruktor virtual ~GraphObj() {} // virtueller Destruktor Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 328 zurück Ende
Bezugspunkt ermitteln Ort Bezugspunkt() const { return Referenzkoordinaten;} // alten Bezugspunkt ermitteln und gleichzeitig neuen wählen Ort Bezugspunkt(const Ort &nO) { Ort temp = Referenzkoordinaten; Referenzkoordinaten = nO; return temp; } int X() const { return Referenzkoordinaten.X(); } int Y() const { return Referenzkoordinaten.Y(); } virtual double Flaeche() const = 0; // rein virtuell virtual void zeichnen() const = 0; // rein virtuell private: Ort Referenzkoordinaten; }; // Standardimplementierung der rein virtuellen Methode zeichnen() inline void GraphObj::zeichnen() const { std::cout
- Seite 277 und 278: Implementation der Klasse nummerier
- Seite 279 und 280: Der Kopierkonstruktor hat hier eine
- Seite 281 und 282: Der Destruktor vermerkt, dass es nu
- Seite 283 und 284: Anfang eines neuen Blocks { nummeri
- Seite 285 und 286: 7.2.1 Klassenspezifische Konstante
- Seite 287 und 288: template class simpleStack { publi
- Seite 289 und 290: • Der Datentyp T steht für einen
- Seite 291 und 292: cout
- Seite 293 und 294: 7.3.2 Stack mit statisch festgelegt
- Seite 295 und 296: Nur die Deklarationen in einem Anwe
- Seite 297 und 298: 8. Vererbung • Eigenschaften, die
- Seite 299 und 300: Die Unterklasse erbt von der Oberkl
- Seite 301 und 302: Jedes Objekt ObjA vom Typ A (=abgel
- Seite 303 und 304: Klasse GraphObj #ifndef graphobj_h
- Seite 305 und 306: Die Entfernung zwischen 2 GraphObj-
- Seite 307 und 308: 8.1 Vererbung und Initialisierung I
- Seite 309 und 310: Vererbung von Zugriffsrechten Regel
- Seite 311 und 312: Oberklasse wird mit der Zugriffsken
- Seite 313 und 314: 8.3 Code-Wiederverwendung In den ab
- Seite 315 und 316: 8.4 Überschreiben von Funktionen i
- Seite 317 und 318: Am Beispiel der Flächenberechnung
- Seite 319 und 320: 8.5.1 Virtuelle Funktionen Wirkung
- Seite 321 und 322: cout
- Seite 323 und 324: GrOptr = &GrO; // Zeiger auf GrO ri
- Seite 325 und 326: Aus diesen Punkten lässt sich eine
- Seite 327: Es gibt Kreise, Rechtecke, Linien,
- 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 374 und 375: Ohne Typumwandlungskonstruktor Um g
- Seite 376 und 377: Mit Typumwandlungskonstruktor Wenn
Anderes Beispiel: Erweiterung der Klasse GraphObj um eine Funktion<br />
zeichnen(). Die Implementation ist natürlich für Kreise <strong>und</strong> Rechtecke<br />
verschieden, der Aufruf jedoch (=die Schnittstelle) ist stets der gleiche!(Der<br />
Einfachheit halber nur Textausgabe.)<br />
#ifndef graphobj_h<br />
#define graphobj_h<br />
#include<br />
#include<br />
class GraphObj { // Version 2<br />
public:<br />
GraphObj(const Ort &einOrt)<br />
: Referenzkoordinaten(einOrt) {}<br />
// allg. Konstruktor<br />
virtual ~GraphObj() {}<br />
// virtueller Destruktor<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 328 zurück Ende