Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
noch fehlende Implementierungen, int-Parameter wird nicht benutzt template const T& simpleStack::top() const { assert(!empty()); return array[anzahl-1]; } template void simpleStack::pop() { assert(!empty()); --anzahl; } template void simpleStack::push(const T &x) { assert(!full()); array[anzahl++] = x; } #endif // simstack2_t Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 294 zurück Ende
Nur die Deklarationen in einem Anwendungsprogramm sind ebenfalls zu modifizieren, die Benutzung bleibt sonst gleich: // ein int-Stack mit max. 100 Elementen: simpleStack einIntStack; // Stack füllen int i; while(!einIntStack.full()) { } cin >> i; einIntStack.push(i); // ein char-Stack mit max. 9 Elementen simpleStack einCharStack; // ... Weil die Größe size nicht dem Objekt, sondern dem Template übergeben wurde, ist die Größe eines simpleStack schon zur Übersetzungszeit bekannt, so dass simpleStack-Objekten statisch Speicherplatz zugeteilt wird, also ohne Rückgriff auf den dynamischen Speicher. Daraus ergibt sich ein Laufzeitvorteil. Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 295 zurück Ende
- 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
- Seite 249 und 250: Eine dreidimensionale Matrix ist ei
- Seite 251 und 252: Feld von Zeigern auf Zeilen anlegen
- Seite 253 und 254: 6.6 Binäre Ein-/Ausgabe = unformat
- Seite 255 und 256: Lesen einer Datei double.dat mit do
- Seite 257 und 258: void upcase(char* s) { // In der AS
- Seite 259 und 260: 6.7.2 Gefahren bei der Rückgabe vo
- Seite 261 und 262: int main() { int a = 1700, b = 1000
- Seite 263 und 264: #include using namespace std; #incl
- Seite 265 und 266: 6.9 this-Zeiger • this ist ein Sc
- Seite 267 und 268: 7. Objektorientierung 2 - eine Stri
- Seite 269 und 270: const char& at(std::size_t position
- Seite 271 und 272: 7.1.1 friend-Funktionen Optionen f
- Seite 273 und 274: 3. friend-Funktion Falls es aus Lau
- Seite 275 und 276: • Die static-Funktion Anzahl() so
- 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: 7.3.2 Stack mit statisch festgelegt
- 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 338 und 339: class Abgeleitet : public Basis { /
- Seite 340 und 341: ... immer wenn Basisklassenzeiger o
- Seite 342 und 343: #ifndef beschrif_h #define beschrif
Nur die Deklarationen in einem Anwendungsprogramm sind ebenfalls<br />
zu modifizieren, die Benutzung bleibt sonst gleich:<br />
// ein int-Stack mit max. 100 Elementen:<br />
simpleStack einIntStack;<br />
// Stack füllen<br />
int i;<br />
while(!einIntStack.full()) {<br />
}<br />
cin >> i;<br />
einIntStack.push(i);<br />
// ein char-Stack mit max. 9 Elementen<br />
simpleStack einCharStack;<br />
// ...<br />
Weil die Größe size nicht dem Objekt, sondern dem Template übergeben<br />
wurde, ist die Größe eines simpleStack schon zur Übersetzungszeit<br />
bekannt, so dass simpleStack-Objekten statisch Speicherplatz zugeteilt<br />
wird, also ohne Rückgriff auf den dynamischen Speicher. Daraus<br />
ergibt sich ein Laufzeitvorteil.<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 295 zurück Ende