Grundkurs C++: C++-Programmierung verständlich erklärt

Grundkurs C++: C++-Programmierung verständlich erklärt

von: Jürgen Wolf

Galileo Press, 2011

ISBN: 9783836215473

Sprache: Deutsch

414 Seiten, Download: 2152 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Grundkurs C++: C++-Programmierung verständlich erklärt



  Liebe Leserin, lieber Leser, 3  
  Auf einen Blick 4  
  Inhalt 6  
  1 Einstieg in die Welt von C++ 16  
     1.1 Die (Kurz-)Geschichte von C++ 16  
     1.2 Der ANSI-C++-Standard 18  
     1.3 Was benötige ich für C++? 19  
     1.4 Welches Betriebssystem ...? 21  
     1.5 Schreibkonventionen 21  
     1.6 Was kann ich von dem Buch erwarten? 22  
     1.7 Listings zum Buch 22  
     1.8 Aufgaben im Buch 22  
        1.8.1 Level 1 22  
        1.8.2 Level 2 23  
        1.8.3 Level 3 23  
  2 Verwendung der Basisdatentypen in C++ 24  
     2.1 Das erste Programm in C++ 24  
     2.2 Die Standard-Ein-/Ausgabestreams 27  
        2.2.1 Die Streams von C++ 27  
        2.2.2 Ausgabe mit »cout« 28  
        2.2.3 Ausgabe mit »cerr« oder »clog« 29  
        2.2.4 Eingabe mit »cin« 30  
     2.3 Einige Symbole von C++ 31  
        2.3.1 Bezeichner 31  
        2.3.2 Literale 32  
        2.3.3 Kommentare 33  
     2.4 Grundlagen zu den Basisdatentypen 34  
        2.4.1 Deklaration und Definition 34  
        2.4.2 Initialisieren einer Variablen 36  
        2.4.3 Ganzzahltypen 36  
        2.4.4 Vorzeichenlos und vorzeichenbehaftet 43  
        2.4.5 Fließkommazahlentypen 45  
        2.4.6 Limits für die Basisdatentypen 47  
     2.5 Rechnen mit Zahlen 48  
        2.5.1 Arithmetische Operatoren 49  
        2.5.2 Ungenaue Fließkommazahlen 51  
        2.5.3 Erweiterte Darstellung arithmetischer Operatoren 53  
        2.5.4 Inkrement- und Dekrementoperator 53  
     2.6 Typumwandlung 55  
        2.6.1 Implizite Umwandlung des Compilers 55  
        2.6.2 Explizite Typumwandlung 59  
        2.6.3 Neue C++-Typumwandlungs-Operatoren 61  
     2.7 Konstanten 64  
     2.8 Aufgaben 64  
        2.8.1 Level 1 65  
        2.8.2 Level 2 65  
        2.8.3 Level 3 66  
  3 Kontrollstrukturen, Funktionen und Präprozessor- Direktiven 68  
     3.1 Kontrollstrukturen 68  
        3.1.1 Anweisungen und Anweisungsblöcke 68  
        3.1.2 Verzweigungen 69  
        3.1.3 Der Bedingungsoperator ?: 77  
        3.1.4 Logische Operatoren 77  
        3.1.5 Die Fallunterscheidung – »switch« 80  
        3.1.6 Schleifen 83  
     3.2 Funktionen 93  
        3.2.1 Funktionen definieren 94  
        3.2.2 Funktionen aufrufen 95  
        3.2.3 Funktionen deklarieren 96  
        3.2.4 Funktionsparameter (Call-by-Value) 97  
        3.2.5 Standardparameter 98  
        3.2.6 Rückgabewert von Funktionen 100  
        3.2.7 Funktionen überladen 102  
        3.2.8 Gültigkeitsbereich von lokalen und globalen Variablen 104  
        3.2.9 Inline-Funktionen 106  
        3.2.10 Die »main«-Funktion 107  
        3.2.11 Programmende 108  
     3.3 Präprozessor-Direktiven 109  
        3.3.1 Die »#include«-Direktive 110  
        3.3.2 Die »#define«-Direktive 112  
        3.3.3 Bedingte Kompilierung 117  
        3.3.4 Weitere Präprozessor-Direktiven 119  
     3.4 Aufgaben 120  
        3.4.1 Level 1 120  
        3.4.2 Level 2 121  
        3.4.3 Level 3 122  
  4 Höhere und fortgeschrittene Datentypen 124  
     4.1 Zeiger 124  
        4.1.1 Zeiger deklarieren 125  
        4.1.2 Adresse im Zeiger speichern 125  
        4.1.3 Zeiger dereferenzieren 127  
        4.1.4 Speichergröße von Zeigern 129  
        4.1.5 Zeigerarithmetik 130  
        4.1.6 Mehrfache Indirektion 131  
        4.1.7 void-Zeiger 131  
     4.2 Referenzen 132  
     4.3 Arrays 134  
        4.3.1 Der C++-Standardtyp »vector« 134  
        4.3.2 C-Arrays 137  
     4.4 Zeichenketten verwenden 141  
        4.4.1 Der C++-Standardtyp »string« 141  
        4.4.2 C-Zeichenketten 143  
     4.5 C-Arrays und C-Strings versus Zeiger 145  
        4.5.1 C-Array und Zeiger 146  
        4.5.2 C-String und Zeiger 148  
        4.5.3 Zeigerarrays 149  
     4.6 Höhere Datentypen bei Funktionen verwenden 150  
        4.6.1 Zeiger als Funktionsparameter 151  
        4.6.2 Zeiger als Rückgabewert 153  
        4.6.3 Referenzen als Funktionsparameter 154  
        4.6.4 Referenzen als Rückgabewert 155  
        4.6.5 C-Arrays oder C-Strings als Funktionsparameter 158  
     4.7 Dynamische Speicherobjekte 160  
        4.7.1 Dynamisch Objekte mit »new« anlegen 161  
        4.7.2 Fehler bei der Speicheranforderung abfangen 163  
        4.7.3 Speicher mit »delete« wieder freigeben 163  
     4.8 Strukturen 165  
        4.8.1 Strukturen deklarieren 166  
        4.8.2 Zugriff auf die Strukturelemente 166  
        4.8.3 Zugriff auf die Elemente über Strukturzeiger 167  
        4.8.4 Strukturen vergleichen 169  
        4.8.5 Dynamische Datenstrukturen mit Strukturen 169  
     4.9 Union 173  
     4.10 Aufzählungstyp »enum« 174  
     4.11 Eigene Namen mit »typedef« 175  
     4.12 Aufgaben 176  
        4.12.1 Level 1 176  
        4.12.2 Level 2 177  
        4.12.3 Level 3 178  
  5 Modularisierung 180  
     5.1 Namensräume 180  
        5.1.1 Neuen Namensbereich deklarieren 180  
        5.1.2 Namensbereich verschachteln 182  
        5.1.3 Namensbereich ist ein eigener Gültigkeitsbereich 182  
        5.1.4 Namensbereich mit »using« importieren 185  
        5.1.5 Einzelne Bezeichner mit »using« importieren 186  
        5.1.6 Aliasse für Namensbereiche 186  
     5.2 Speicherklassenattribute 186  
        5.2.1 Schlüsselwort »extern« 187  
        5.2.2 Schlüsselwort »static« 187  
        5.2.3 Schlüsselwort »register« 190  
        5.2.4 Schlüsselwort »auto« 191  
     5.3 Typqualifikatoren 192  
        5.3.1 Schlüsselwort »const« 192  
        5.3.2 Schlüsselwort »volatile« 193  
     5.4 Funktionsattribute 194  
     5.5 Modulare Programmierung 194  
        5.5.1 Aufteilung 195  
        5.5.2 Die öffentliche Schnittstelle (Headerdatei) 197  
        5.5.3 Private Datei(en) 198  
        5.5.4 Die Client-Datei 199  
        5.5.5 Nur Objektcode oder Bibliothek vorhanden 200  
     5.6 Aufgaben 200  
        5.6.1 Level 1 200  
        5.6.2 Level 2 201  
  6 Klassen 204  
     6.1 Abstraktionsmechanismus 204  
     6.2 Klassen 205  
        6.2.1 Klassendefinition 205  
        6.2.2 Elementfunktionen definieren 206  
        6.2.3 Zugriffskontrolle mit »public« und »private« 208  
        6.2.4 Zugriff auf die Daten innerhalb einer Klasse 211  
        6.2.5 Objekte erzeugen und benutzen 211  
     6.3 Konstruktoren 216  
        6.3.1 Konstruktoren deklarieren 217  
        6.3.2 Konstruktoren definieren 218  
        6.3.3 Standardkonstruktor (Default-Konstruktor) 220  
        6.3.4 Kopierkonstruktor 221  
     6.4 Destruktoren 222  
        6.4.1 Destruktor deklarieren 222  
        6.4.2 Destruktor definieren 223  
     6.5 Elementfunktionen 225  
        6.5.1 Inline-Elementfunktionen 225  
        6.5.2 Konstante Elementfunktionen (read-only) 228  
        6.5.3 this-Zeiger 230  
     6.6 Aufgaben 231  
        6.6.1 Level 1 231  
        6.6.2 Level 2 232  
        6.6.3 Level 3 233  
  7 Objekte und Klassenelemente 234  
     7.1 Konstante Objekte 234  
     7.2 Objekte als (Element-)Funktionsargumente 235  
        7.2.1 Hilfsfunktionen 235  
        7.2.2 Wertübergabe als Kopie (Call-by-Value) 236  
        7.2.3 Wertübergabe als Zeiger (Call-by-Reference) 238  
        7.2.4 Wertübergabe als Referenz 240  
        7.2.5 Wertübergabe bei Elementfunktionen 240  
        7.2.6 *this-Zeiger 243  
     7.3 Objekte als Rückgabewerte 245  
     7.4 Arrays von Objekten 247  
     7.5 Dynamische Objekte 248  
     7.6 Mehr zu den Klassenelementen 251  
        7.6.1 Dynamische Klassenelemente 251  
        7.6.2 Statische Klassenelemente 258  
     7.7 Andere Klassenobjekte als Datenelement einer Klasse 261  
     7.8 Gute Freunde (»friend«) 268  
     7.9 Aufgaben 271  
        7.9.1 Level 1 271  
        7.9.2 Level 2 271  
        7.9.3 Level 3 273  
  8 Operatoren überladen 274  
     8.1 Schlüsselwort »operator« 275  
     8.2 Zweistellige (arithmetische) Operatoren überladen 277  
        8.2.1 Operatorüberladung als Elementfunktion einer Klasse 278  
        8.2.2 Operatorüberladung als globale Hilfsfunktion 281  
        8.2.3 Zweistellige Operatoren zusammengefasst 283  
     8.3 Einstellige Operatoren überladen 283  
     8.4 Zuweisungsoperator überladen 286  
     8.5 Ein-/Ausgabeoperator überladen 289  
        8.5.1 Eingabeoperator >> überladen 289  
        8.5.2 Ausgabeoperator << überladen 290  
     8.6 Weitere Operatorüberladungen 292  
     8.7 Konvertierungsoperatoren 293  
        8.7.1 Konvertierungskonstruktor 293  
        8.7.2 Globale Konvertierungsfunktion 295  
     8.8 Aufgaben zu Kapitel 8 297  
        8.8.1 Level 1 297  
        8.8.2 Level 2 297  
        8.8.3 Level 3 298  
  9 Vererbung (Abgeleitete Klassen) 300  
     9.1 Die Vorbereitung 301  
     9.2 Die Ableitung einer Klasse 302  
        9.2.1 »public«-Zugriffsrechte einer abgeleiteten Klasse 304  
        9.2.2 Erben und erweitern 304  
        9.2.3 Zugriff auf die Daten 305  
        9.2.4 Redefinition von Elementfunktionen 307  
        9.2.5 Konstruktoren 308  
        9.2.6 Destruktor 309  
        9.2.7 Programmbeispiel 310  
        9.2.8 Zugriffsrecht »protected« 310  
        9.2.9 Zugriffsrechte bei der Vererbung von Klassen 312  
        9.2.10 Implizite Typumwandlung abgeleiteter Klassen 314  
     9.3 Mehrfachvererbung 315  
     9.4 Virtuelle Vererbung 319  
     9.5 Aufgaben für Kapitel 9 324  
        9.5.1 Level 1 324  
        9.5.2 Level 2 324  
        9.5.3 Level 3 325  
  10 Abstrakte Klassen 326  
     10.1 Abstrakte Klasse erstellen 326  
     10.2 Vorteil von abstrakten Klassen 330  
     10.3 Virtuelle Destruktoren 330  
     10.4 typeinfo 332  
     10.5 Aufgaben für Kapitel 10 333  
        10.5.1 Level 1 333  
        10.5.2 Level 2 333  
        10.5.3 Level 3 335  
  11 Templates 336  
     11.1 Funktions-Templates 336  
        11.1.1 Funktions-Template definieren 337  
        11.1.2 Typübereinstimmung 339  
        11.1.3 Funktions-Templates über mehrere Module 339  
        11.1.4 Funktions-Template spezialisieren 340  
        11.1.5 Templates mit verschiedenen Parametern 341  
        11.1.6 Explizite Template-Argumente 343  
     11.2 Klassen-Templates 344  
        11.2.1 Klassen-Template definieren 344  
        11.2.2 Elementfunktionen von Klassen-Templates definieren 345  
        11.2.3 Klassen-Template instantiieren 349  
     11.3 STL (Standard Template Library) 352  
        11.3.1 Container von STL 352  
        11.3.2 Iteratoren 356  
        11.3.3 Algorithmen 356  
     11.4 Aufgaben für Kapitel 11 357  
        11.4.1 Level 1 357  
        11.4.2 Level 2 358  
        11.4.3 Level 3 359  
  12 Exception-Handling (Fehlerbehandlung) 360  
     12.1 Exception auslösen 361  
     12.2 Exception auffangen und behandeln 361  
        12.2.1 »terminate«-Handler einrichten 365  
        12.2.2 Alternatives »catch (...)« 366  
        12.2.3 Stack-Abwicklung 366  
     12.3 Ausnahme-Klassen (Fehlerklassen) 367  
     12.4 Standard-Exceptions 369  
        12.4.1 Virtuelle Methode »what()« 370  
        12.4.2 Anwenden der Standard-Exceptions 370  
     12.5 System-Exceptions 374  
        12.5.1 bad_alloc 374  
        12.5.2 bad_cast 374  
        12.5.3 bad_typeid 374  
        12.5.4 bad_exception 375  
     12.6 Aufgaben für Kapitel 12 375  
        12.6.1 Level 1 375  
  A Lösungen der Übungsaufgaben 376  
     A. 1 Lösungen zum Kapitel 2 376  
        A.1.1 Lösungen Level 1 376  
        A.1.2 Lösungen Level 2 376  
        A.1.3 Lösung Level 3 377  
     A. 2 Lösungen zum Kapitel 3 378  
        A.2.1 Lösungen Level 1 378  
        A.2.2 Lösungen Level 2 379  
        A.2.3 Lösungen Level 3 380  
     A. 3 Lösungen zum Kapitel 4 381  
        A.3.1 Lösungen Level 1 381  
        A.3.2 Lösungen Level 2 383  
        A.3.3 Lösungen Level 3 384  
     A. 4 Lösungen zum Kapitel 5 385  
        A.4.1 Lösungen Level 1 385  
        A.4.2 Lösungen Level 2 386  
     A. 5 Lösungen zum Kapitel 6 387  
        A.5.1 Lösungen Level 1 387  
        A.5.2 Lösungen Level 2 388  
        A.5.3 Lösung Level 3 389  
     A. 6 Lösungen zum Kapitel 7 390  
        A.6.1 Lösungen Level 1 390  
        A.6.2 Lösungen Level 2 391  
        A.6.3 Lösungen Level 3 392  
     A. 7 Lösungen zum Kapitel 8 395  
        A.7.1 Lösungen Level 1 395  
        A.7.2 Lösung Level 2 396  
        A.7.3 Lösung Level 3 397  
     A. 8 Lösungen zum Kapitel 9 398  
        A.8.1 Lösungen Level 1 398  
        A.8.2 Lösung Level 2 399  
        A.8.3 Lösung Level 3 400  
     A. 9 Lösungen zum Kapitel 10 401  
        A.9.1 Lösungen Level 1 401  
        A.9.2 Lösung Level 2 402  
        A.9.3 Lösung Level 3 404  
     A. 10 Lösungen zum Kapitel 11 404  
        A.10.1 Lösungen Level 1 404  
        A.10.2 Lösungen Level 2 405  
        A.10.3 Lösung Level 3 405  
     A. 11 Lösungen zum Kapitel 12 407  
        A.11.1 Lösungen Level 1 407  
  Index 408  

Kategorien

Service

Info/Kontakt