Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
class Abgeleitet : public Basis { // .... public: Abgeleitet(); ~Abgeleitet(); }; Abgeleitet::~Abgeleitet() { }; cout
int main () { Basis* pb = new Basis(); Abgeleitet* pa = new Abgeleitet(); Basis* pba = new Abgeleitet(); delete pb; // ok delete pa; // ok delete pba; // ok nur mit virtuellem Destruktor! } (Implizite) Aufrufreihenfolge: delete pb; pb->~Basis(); delete pa; pa->~Abgeleitet(); pa->~Basis(); delete pba; pba->~Abgeleitet(); // (*) pba->~Basis(); Ohne das Schlüsselwort virtual würde (*) entfallen → Speicherleiche! Virtueller Destruktor — wann? Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 339 zurück Ende
- 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 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 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
- 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
int main () {<br />
Basis* pb = new Basis();<br />
Abgeleitet* pa = new Abgeleitet();<br />
Basis* pba = new Abgeleitet();<br />
delete pb; // ok<br />
delete pa; // ok<br />
delete pba; // ok nur mit virtuellem Destruktor!<br />
}<br />
(Implizite) Aufrufreihenfolge:<br />
delete pb;<br />
pb->~Basis();<br />
delete pa;<br />
pa->~Abgeleitet();<br />
pa->~Basis();<br />
delete pba; pba->~Abgeleitet(); // (*)<br />
pba->~Basis();<br />
Ohne das Schlüsselwort virtual würde (*) entfallen → Speicherleiche!<br />
Virtueller Destruktor — wann?<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 339 zurück Ende