Breymann. C++ Einführung und professionelle Programmierung

Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung

vred.bioinf.uni.sb.de
von vred.bioinf.uni.sb.de Mehr von diesem Publisher
17.11.2014 Aufrufe

2.4.3 Fallunterscheidungen (switch) . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.4.4 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.4.5 Kontrolle mit break und continue . . . . . . . . . . . . . . . . . . . . . . . . 60 2.5 Benutzerdefinierte und zusammengesetzte Datentypen . . . . . . . . . . . . . . . . 64 2.5.1 Aufzählungstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.5.2 Arrays: Der C++ Standardtyp vector . . . . . . . . . . . . . . . . . . . . . . . 67 2.5.3 Zeichenketten: Der C++ Standardtyp string . . . . . . . . . . . . . . . . . . . 76 2.5.4 Strukturierte Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3 Einfache Ein- und Ausgabe 81 3.1 Standard- Ein- und -Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.2 Ein- und Ausgabe mit Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4 Programmstrukturierung 89 4.1 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.1.1 Aufbau und Prototypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.1.2 Gültigkeitsbereiche und Sichtbarkeit in Funktionen . . . . . . . . . . . . . . 94 4.2 Schnittstellen zum Datentransfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.2.1 Übergabe per Wert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.2.2 Übergabe per Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.2.3 Gefahren bei der Rückgabe von Referenzen . . . . . . . . . . . . . . . . . . . 104 4.2.4 Vorgabewerte und variable Parameterzahl . . . . . . . . . . . . . . . . . . . 105 4.2.5 Überladen von Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.2.6 Funktion main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.3 Grundsätze der modularen Gestaltung . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.3.1 Steuerung der Übersetzung mit #include . . . . . . . . . . . . . . . . . . . . 112 Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 4 zurück Ende

4.3.2 Einbinden vorübersetzter Programmteile . . . . . . . . . . . . . . . . . . . . 113 4.3.3 Dateiübergreifende Gültigkeit und Sichtbarkeit . . . . . . . . . . . . . . . . 118 4.3.4 Übersetzungseinheit, Deklaration und Definition . . . . . . . . . . . . . . . 121 4.3.5 Compilerdirektiven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.4 Funktions-Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.5 inline-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5 Objektorientierung 1 143 5.1 Abstrakte Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.2 Klassen und Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.2.1 inline-Elementfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 5.3 Initialisierung und Konstruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.3.1 Standardkonstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.3.2 Allgemeine Konstruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 5.3.3 Kopierkonstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 5.3.4 Typumwandlungskonstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.4 Beispiel: Klasse für rationale Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 5.4.1 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 5.4.2 Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5.4.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 5.5 const-Objekte und Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 5.6 Faustregeln zur Konstruktion von Schnittstellen . . . . . . . . . . . . . . . . . . . . 189 5.7 Destruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 5.8 Wie kommt man zu Klassen und Objekten? Ein Beispiel . . . . . . . . . . . . . . . . 201 5.8.1 Einige Analyse-Überlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 5 zurück Ende

4.3.2 Einbinden vorübersetzter Programmteile . . . . . . . . . . . . . . . . . . . . 113<br />

4.3.3 Dateiübergreifende Gültigkeit <strong>und</strong> Sichtbarkeit . . . . . . . . . . . . . . . . 118<br />

4.3.4 Übersetzungseinheit, Deklaration <strong>und</strong> Definition . . . . . . . . . . . . . . . 121<br />

4.3.5 Compilerdirektiven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />

4.4 Funktions-Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

4.5 inline-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />

5 Objektorientierung 1 143<br />

5.1 Abstrakte Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

5.2 Klassen <strong>und</strong> Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148<br />

5.2.1 inline-Elementfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

5.3 Initialisierung <strong>und</strong> Konstruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

5.3.1 Standardkonstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

5.3.2 Allgemeine Konstruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

5.3.3 Kopierkonstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

5.3.4 Typumwandlungskonstruktor . . . . . . . . . . . . . . . . . . . . . . . . . . 168<br />

5.4 Beispiel: Klasse für rationale Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . 172<br />

5.4.1 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172<br />

5.4.2 Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175<br />

5.4.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

5.5 const-Objekte <strong>und</strong> Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188<br />

5.6 Faustregeln zur Konstruktion von Schnittstellen . . . . . . . . . . . . . . . . . . . . 189<br />

5.7 Destruktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198<br />

5.8 Wie kommt man zu Klassen <strong>und</strong> Objekten? Ein Beispiel . . . . . . . . . . . . . . . . 201<br />

5.8.1 Einige Analyse-Überlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />

<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />

Inhalt ◭◭ ◭ ◮ ◮◮ 5 zurück Ende

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!