Einführung in C++ von Torsten T. Will - gebundenes Buch

Einführung in C++
Das Praxisbuch zu C++ 11/14, Aktuell zu C++ 11/14, Galileo Computing
ISBN/EAN:  9783836226776
Sprache: Deutsch
Umfang: 520 S.
Einband: gebundenes Buch
Ohne Umwege und ohne Vorkenntnisse lernen Sie, in C++ zu programmieren - und zwar ganz nebenbei so, wie es aktuelle Profi-Praxis ist. Der vermeintlichen Dinosaurier unter den objektorientierten Sprachen hat neue Standards und moderne Programmierwerkzeuge zu bieten. Lernen Sie hier, damit umzugehen. Lassen Sie sich in der C++-Welt an die Hand nehmen. Ob es um einfache Variablen oder anonyme Funktionen geht - unser Autor führt Sie an allen Fallstricken vorbei und erläutert Fachbegriffe und Best Practices zu den Grundlagen genauso wie zu professionellen Themen. Aus dem Inhalt: Ausdrücke und AnweisungenWerte und DatentypenAblaufkontrolleAlgorithmen und KomplexitätCompiler, IDE und KonsoleVererbung, Aggregation, Design PatternsHeap und Stack verstehenDateizugriffe und StreamsLebenszyklen und Zugriffskontrolle
       1.1 ... Der C++-Standard ... 26        1.2 ... Verwendete Formatierungen ... 27        2.1 ... Was ist Programmieren? ... 30        2.2 ... Softwareentwicklungsmethoden ... 30        2.3 ... Entwurfsmuster ... 32        2.4 ... Algorithmen ... 33        2.5 ... Ressourcen ... 34        3.1 ... Übersetzen ... 37        3.2 ... Aktuelle Compiler ... 37        3.3 ... Entwicklungsumgebungen ... 39        3.4 ... Die Kommandozeile unter Ubuntu ... 41        3.5 ... Die IDE »Microsoft Visual Studio Express« unter Windows ... 44        3.6 ... Schneller ... 47        3.7 ... Aufgaben ... 47        4.1 ... Kommentare ... 50        4.2 ... Die »include«-Direktive ... 50        4.3 ... Die Standardbibliothek ... 51        4.4 ... Die Funktion »main()« ... 51        4.5 ... Typen ... 51        4.6 ... Variablen ... 52        4.7 ... Initialisierung ... 52        4.8 ... Ausgabe auf der Konsole ... 53        4.9 ... Anweisungen ... 53        4.10 ... Aufgaben ... 54        5.1 ... Leerräume, Bezeichner und Token ... 58        5.2 ... Kommentare ... 59        5.3 ... Funktionen und Argumente ... 60        5.4 ... Seiteneffekt-Operatoren ... 61        5.5 ... Die »main«-Funktion ... 62        5.6 ... Anweisungen ... 64        5.7 ... Ausdrücke ... 66        5.8 ... Zuweisungen ... 68        5.9 ... Typen ... 69        5.10 ... Variablen -- Deklaration, Definition und Initialisierung ... 74        5.11 ... Details zur »include«-Direktive ... 75        5.12 ... Eingabe und Ausgabe ... 76        5.13 ... Der Namensraum »std« ... 77        5.14 ... Aufgaben ... 79        6.1 ... Kommentare ... 81        6.2 ... Dokumentation ... 82        6.3 ... Einrückungen und Zeilenlänge ... 83        6.4 ... Zeilen pro Funktion und Datei ... 84        6.5 ... Klammern und Leerzeichen ... 84        6.6 ... Namen ... 86        7.1 ... Operatoren und Operanden ... 90        7.2 ... Überblick über Operatoren ... 90        7.3 ... Arithmetische Operatoren ... 91        7.4 ... Bitweise Arithmetik ... 92        7.5 ... Zuweisungsoperatoren ... 93        7.6 ... Post- und Präinkrement sowie Post- und Prädekrement ... 94        7.7 ... Relationale Operatoren ... 95        7.8 ... Logische Operatoren ... 95        7.9 ... Pointer- und Dereferenzierungsoperatoren ... 97        7.10 ... Besondere Operatoren ... 97        7.11 ... Funktionsähnliche Operatoren ... 99        7.12 ... Operatorreihenfolge ... 100        7.13 ... Aufgaben ... 101        8.1 ... Eingebaute Datentypen ... 105        8.2 ... Eingebaute Datentypen initialisieren ... 105        8.3 ... Ein schneller Überblick ... 106        8.4 ... Ganzzahlen ... 107        8.5 ... Wahrheitswerte ... 118        8.6 ... Zeichentypen ... 119        8.7 ... Aufgaben ... 122        9.1 ... Der Zeichenkettentyp »string« ... 124        9.2 ... Streams ... 129        9.3 ... Eingabe- und Ausgabeoperatoren ... 130        9.4 ... Aufgaben ... 134        10.1 ... Parametrisierte Typen ... 136        10.2 ... Die einfachen Sequenzcontainer ... 136        10.3 ... Weitere Container ... 141        10.4 ... Container-Gemeinsamkeiten ... 144        10.5 ... Algorithmen ... 145        10.6 ... Zeiger und C-Arrays ... 146        10.7 ... Aufgaben ... 147        11.1 ... Deklaration und Definition einer Funktion ... 149        11.2 ... Funktionstyp ... 150        11.3 ... Funktionen verwenden ... 150        11.4 ... Eine Funktion definieren ... 151        11.5 ... Mehr zu Parametern ... 152        11.6 ... Funktionskörper ... 156        11.7 ... Parameter umwandeln ... 158        11.8 ... Funktionen überladen ... 160        11.9 ... Default-Parameter ... 162        11.10 ... Beliebig viele Argumente ... 163        11.11 ... Alternative Schreibweise zur Funktionsdeklaration ... 164        11.12 ... Spezialitäten ... 165        11.13 ... Aufgaben ... 167        12.1 ... Anweisungsblock ... 171        12.2 ... Die leere Anweisung ... 174        12.3 ... Deklarationsanweisung ... 175        12.4 ... Ausdrucksanweisung ... 176        12.5 ... Die if-Anweisung ... 176        12.6 ... »while«-Schleife ... 179        12.7 ... »do-while«-Schleife ... 180        12.8 ... »for«-Schleife ... 181        12.9 ... Die bereichsbasierte »for«-Schleife ... 182        12.10 ... Die »switch«-Verzweigung ... 183        12.11 ... »break«-Anweisung ... 187        12.12 ... Die »continue«-Anweisung ... 188        12.13 ... Die »return«-Anweisung ... 189        12.14 ... Die »goto«-Anweisung ... 190        12.15 ... »try-catch«-Block und »throw« ... 192        12.16 ... Zusammenfassung ... 193        12.17 ... Aufgaben ... 193        13.1 ... Berechnungen und Seiteneffekte ... 197        13.2 ... Arten von Ausdrücken ... 198        13.3 ... Literale ... 199        13.4 ... Bezeichner ... 200        13.5 ... Klammern ... 201        13.6 ... Funktionsaufruf und Index-Zugriff ... 201        13.7 ... Zuweisung ... 201        13.8 ... Typumwandlung ... 203        13.9 ... Aufgaben ... 204        14.1 ... Fehlerbehandlung mit Rückgabewerten ... 207        14.2 ... Was ist eine Ausnahme? ... 210        14.3 ... Kleinere Fehlerbehandlungen ... 213        14.4 ... Weiterwerfen -- »rethrow« ... 213        14.5 ... Die Reihenfolge im »catch« ... 214        14.6 ... Typen für Exceptions ... 216        14.7 ... Wenn eine Exception aus »main« herausfällt ... 217        14.8 ... Aufgaben ... 217        15.1 ... Programm, Bibliothek, Objektdatei ... 219        15.2 ... Bausteine ... 220        15.3 ... Trennen der Funktionalitäten ... 221        16.1 ... Initialisierung ... 226        16.2 ... Rückgabe eigener Typen ... 227        16.3 ... Methoden statt Funktionen ... 228        16.4 ... Das bessere »drucke« ... 231        16.5 ... Eine Ausgabe wie jede andere ... 232        16.6 ... Methoden inline definieren ... 233        16.7 ... Implementierung und Definition trennen ... 234        16.8 ... Initialisierung per Konstruktor ... 235        16.9 ... Struktur oder Klasse? ... 241        16.10 ... Zusammenfassung ... 245        16.11 ... Aufgaben ... 245        17.1 ... Klassen als Werte verwenden ... 251        17.2 ... Konstruktoren nutzen ... 253        17.3 ... Typumwandlungen ... 254        17.4 ... Kapseln und entkapseln ... 256        17.5 ... Typen lokal einen Namen geben ... 260        17.6 ... Typdeduktion mit »auto« ... 263        17.7 ... Eigene Klassen in Standardcontainern ... 266        17.8 ... Aufgaben ... 268        18.1 ... Der Namensraum »std« ... 270        18.2 ... Anonymer Namensraum ... 274        18.3 ... »static« macht lokal ... 275        18.4 ... »static« teilt gern ... 276        18.5 ... »static« macht dauerhaft ... 279        18.6 ... Zusammenfassung ... 281        18.7 ... Aufgaben ... 281        19.1 ... Const-Parameter ... 285        19.2 ... Const-Methoden ... 286        19.3 ... Const-Variablen ... 288        19.4 ... Const-Rückgaben ... 289        19.5 ... Const-Korrektheit ... 296        19.6 ... Zusammenfassung ... 297        19.7 ... Aufgaben ... 298        20.1 ... Beziehungen ... 301        20.2 ... Vererbung in C++ ... 303        20.3 ... Hat-ein versus ist-ein ... 304        20.4 ... Gemeinsamkeiten finden ... 304        20.5 ... Abgeleitete Typen erweitern ... 307        20.6 ... Methoden überschreiben ... 308        20.7 ... Wie Methoden funktionieren ... 309        20.8 ... Virtuelle Methoden ... 310        20.9 ... Konstruktoren in Klassenhierarchien ... 312        20.10 ... Typumwandlung in Klassenhierarchien ... 314        20.11 ... Wann virtuell? ... 315        20.12 ... Andere Designs zur Erweiterbarkeit ... 317        20.13 ... Aufgaben ... 318        21.1 ... Erzeugung und Zerstörung ... 322        21.2 ... Temporary: Kurzlebige Werte ... 324        21.3 ... Der Destruktor zum Konstruktor ... 325        21.4 ... Yoda-Bedingung ... 330        21.5 ... Konstruktion, Destruktion und Exceptions ... 331        21.6 ... Kopieren ... 333        21.7 ... Zuweisungsoperator ... 335        21.8 ... Streichen von Methoden ... 339        21.9 ... Verschiebeoperationen ... 340        21.10 ... Operatoren ... 344        21.11 ... Eigene Operatoren in einem Datentyp ... 348        21.12 ... Besondere Klassenformen ... 353        21.13 ... Aufgaben ... 356        22.1 ... Die großen Fünf ... 359        22.2 ... Hilfskonstrukt per Verbot ... 360        22.3 ... Die Nullerregel und ihr Einsatz ... 361        22.4 ... Ausnahmen von der Nullerregel ... 362        23.1 ... Adressen ... 368        23.2 ... Zeiger ... 369        23.3 ... Heapspeicher und Stapelspeicher ... 372        23.4 ... Smarte Pointer ... 376        23.5 ... Rohe Zeiger ... 385        23.6 ... C-Arrays ... 390        23.7 ... Iteratoren ... 396        23.8 ... Zeiger im Container ... 400        23.9 ... Die Ausnahme: Wann das Wegräumen nicht nötig ist ... 400        23.10 ... Aufgaben ... 402        24.1 ... Der Präprozessor ... 406        24.2 ... Vorsicht vor fehlenden Klammern ... 410        24.3 ... Vorsicht vor Mehrfachausführung ... 410        24.4 ... Typvariabilität von Makros ... 411        24.5 ... Zusammenfassung ... 413        24.6 ... Aufgaben ... 414        25.1 ... Mit Bibliotheken arbeiten ... 417        25.2 ... C-Header ... 418        25.3 ... C-Ressourcen ... 421        25.4 ... »void«-Pointer ... 422        25.5 ... Daten lesen ... 423        25.6 ... Das Hauptprogramm ... 424        25.7 ... Zusammenfassung ... 425        25.8 ... Aufgaben ... 425        26.1 ... Überladung ... 428        26.2 ... Ein Typ als Parameter ... 429        26.3 ... Funktionskörper einer Template-Funktion ... 429        26.4 ... Zahlen als Template-Parameter ... 431        26.5 ... Viele Funktionen ... 432        26.6 ... Parameter mit Extras ... 432        26.7 ... Template-Methoden sind auch nur Funktionen ... 435        26.8 ... Template-Funktionen in der Standardbibliothek ... 436        26.9 ... Iteratoren statt Container als Template-Parameter ... 437        26.10 ... Beispiel: Informationen über Zahlen ... 439        26.11 ... Aufgaben ... 440        27.1 ... Werte für einen »function«-Parameter ... 443        27.2 ... C-Funktionspointer ... 444        27.3 ... Die etwas andere Funktion ... 445        27.4 ... Praktische Funktoren ... 448        27.5 ... Algorithmen mit Funktoren ... 450        27.6 ... Anonyme Funktionen alias Lambda-Ausdrücke ... 451        27.7 ... Aufgaben ... 455        A ... C++11-Besonderheiten ... 458        B ... Operator-Präzedenzen ... 470        C ... Lösungen ... 472
Alle anzeigen

Mehr von Will, Torsten T.

Das könnte Sie auch interessieren