Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
5.7 Destruktoren • Zweck: Aufräumarbeiten für nicht mehr benötigte Objekte • Wenn Destruktoren nicht vorgegeben werden, werden sie vom System automatisch erzeugt. • Der häufigste Zweck ist die Speicherfreigabe, wenn der Gültigkeitsbereich eines Objekts verlassen wird. • Die Reihenfolge des Aufrufs der Destruktoren ist umgekehrt wie die der Konstruktoren. • Destruktoren haben keine Argumente und keinen Rückgabetyp. • Falls es globale Objekte gibt, wird ihr Konstruktor vor der ersten Anweisung von main() aufgerufen. • Innerhalb des äußersten Blocks von main() definierte Objekte werden erst nach Verlassen von main() freigegeben. • Wegen der umgekehrten Reihenfolge der Destruktoraufrufe werden globale Objekte zuletzt freigegeben. Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 198 zurück Ende
class Beispiel { int zahl; public: Beispiel(int i = 0); ~Beispiel(); }; // Konstruktor // Destruktor Beispiel::Beispiel(int i) { // Konstruktor zahl=i; cout
- 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 und 194: 5. Die Art der Übergabe eines Obje
- Seite 195 und 196: (a) Diese Anweisung wird von links
- Seite 197: Natürlich kann von den Empfehlunge
- 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
- Seite 245 und 246: Aufgaben 6.1 Die Äquivalenz von *(
- Seite 247 und 248: 6.5.2 Dynamisch erzeugte mehrdimens
5.7 Destruktoren<br />
• Zweck: Aufräumarbeiten für nicht mehr benötigte Objekte<br />
• Wenn Destruktoren nicht vorgegeben werden, werden sie vom System<br />
automatisch erzeugt.<br />
• Der häufigste Zweck ist die Speicherfreigabe, wenn der Gültigkeitsbereich<br />
eines Objekts verlassen wird.<br />
• Die Reihenfolge des Aufrufs der Destruktoren ist umgekehrt wie die<br />
der Konstruktoren.<br />
• Destruktoren haben keine Argumente <strong>und</strong> keinen Rückgabetyp.<br />
• Falls es globale Objekte gibt, wird ihr Konstruktor vor der ersten<br />
Anweisung von main() aufgerufen.<br />
• Innerhalb des äußersten Blocks von main() definierte Objekte werden<br />
erst nach Verlassen von main() freigegeben.<br />
• Wegen der umgekehrten Reihenfolge der Destruktoraufrufe werden<br />
globale Objekte zuletzt freigegeben.<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 198 zurück Ende