Hilfe Warenkorb Konto Anmelden
 
 
   Schnellsuche   
     zur Expertensuche                      
Grundkurs C++ - C++-Programmierung verständlich erklärt
  Großes Bild
 
Grundkurs C++ - C++-Programmierung verständlich erklärt
von: Jürgen Wolf
Galileo Press, 2013
ISBN: 9783836222945
448 Seiten, Download: 2286 KB
 
Format:  PDF
geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop

Typ: A (einfacher Zugriff)

 

 
eBook anfordern
Inhaltsverzeichnis

  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 Was kann ich von dem Buch erwarten? 21  
     1.6 Listings zum Buch 21  
     1.7 Aufgaben im Buch 21  
        1.7.1 Level 1 22  
        1.7.2 Level 2 22  
        1.7.3 Level 3 22  
  2 Verwendung der Basisdatentypen in C++ 23  
     2.1 Das erste Programm in C++ 23  
     2.2 Die Standard-Eingabe- und -Ausgabestreams 25  
        2.2.1 Die Streams von C++ 25  
        2.2.2 Ausgabe mit »cout« 26  
        2.2.3 Ausgabe mit »cerr« oder »clog« 28  
        2.2.4 Eingabe mit »cin« 28  
     2.3 Einige Symbole von C++ 30  
        2.3.1 Bezeichner 30  
        2.3.2 Literale 30  
        2.3.3 Kommentare 32  
     2.4 Grundlagen zu den Basisdatentypen 33  
        2.4.1 Deklaration und Definition von Variablen 33  
        2.4.2 Initialisieren einer Variablen 35  
        2.4.3 Vereinheitlichte Initialisierung mit C++11 36  
        2.4.4 Ganzzahltypen 37  
        2.4.5 Vorzeichenlos und vorzeichenbehaftet 48  
        2.4.6 Fließkommazahlentypen 49  
        2.4.7 Limits für die Basisdatentypen 51  
        2.4.8 Die Byte-Größe mit dem »sizeof«-Operator 53  
        2.4.9 Sicherheit beim Kompilieren mit »static_assert« (C++11) 53  
     2.5 »auto«-Typ (C++11) 54  
     2.6 Rechnen mit Zahlen 55  
        2.6.1 Arithmetische Operatoren 56  
        2.6.2 Ungenaue Fließkommazahlen 58  
        2.6.3 Erweiterte Darstellung arithmetischer Operatoren 60  
        2.6.4 Inkrement- und Dekrementoperator 60  
     2.7 Zufallszahlen (C++11) 62  
     2.8 Typumwandlung 63  
        2.8.1 Implizite Umwandlung durch den Compiler 64  
        2.8.2 Automatische Typumwandlung beschränken (C++11) 67  
        2.8.3 Explizite Typumwandlung 68  
        2.8.4 C++-Typumwandlungs-Operatoren 68  
        2.8.5 Gefährliche Typumwandlung mit den alten C-Casts 71  
     2.9 Konstanten 72  
     2.10 Aufgaben 73  
        2.10.1 Level 1 73  
        2.10.2 Level 2 73  
        2.10.3 Level 3 74  
  3 Kontrollstrukturen, Funktionen und Präprozessor-Direktiven 75  
     3.1 Kontrollstrukturen 75  
        3.1.1 Anweisungen und Anweisungsblöcke 75  
        3.1.2 Verzweigungen 76  
        3.1.3 Der Bedingungsoperator ?: 84  
        3.1.4 Logische Operatoren 85  
        3.1.5 Die Fallunterscheidung - »switch« 88  
        3.1.6 Schleifen 91  
     3.2 Funktionen 101  
        3.2.1 Funktionen definieren 102  
        3.2.2 Funktionen aufrufen 103  
        3.2.3 Funktionen deklarieren 104  
        3.2.4 Funktionsparameter (Call-by-Value) 105  
        3.2.5 Standardparameter 106  
        3.2.6 Rückgabewert von Funktionen 108  
        3.2.7 Funktionen überladen 110  
        3.2.8 Gültigkeitsbereich von lokalen und globalen Variablen 112  
        3.2.9 Inline-Funktionen 114  
        3.2.10 Die »main«-Funktion 116  
        3.2.11 Programmende 117  
     3.3 Präprozessor-Direktiven 118  
        3.3.1 Die »#include«-Direktive 119  
        3.3.2 Die »#define«-Direktive 120  
        3.3.3 Bedingte Kompilierung 122  
        3.3.4 Weitere Präprozessor-Direktiven 124  
     3.4 Aufgaben 125  
        3.4.1 Level 1 125  
        3.4.2 Level 2 125  
        3.4.3 Level 3 127  
  4 Höhere und fortgeschrittene Datentypen 128  
     4.1 Zeiger 128  
        4.1.1 Zeiger deklarieren 129  
        4.1.2 Adresse im Zeiger speichern 130  
        4.1.3 Zeiger dereferenzieren 132  
        4.1.4 Speichergröße von Zeigern 135  
        4.1.5 Zeigerarithmetik 135  
     4.2 Referenzen 136  
     4.3 Arrays 138  
        4.3.1 Der C++-Container »vector« 139  
        4.3.2 C-Arrays 143  
     4.4 Zeichenketten verwenden 147  
        4.4.1 Der C++-Container »string« 147  
        4.4.2 Unterstützung von Unicode (C++11) 149  
        4.4.3 C-Zeichenketten 151  
     4.5 Höhere Datentypen bei Funktionen verwenden 154  
        4.5.1 Zeiger als Funktionsparameter 154  
        4.5.2 Zeiger als Rückgabewert 156  
        4.5.3 Referenzen als Funktionsparameter 158  
        4.5.4 Referenzen als Rückgabewert 159  
        4.5.5 C-Arrays oder C-Strings als Funktionsparameter 161  
     4.6 Dynamische Speicherobjekte 164  
        4.6.1 Dynamisch Objekte mit »new« anlegen 165  
        4.6.2 Fehler bei der Speicheranforderung abfangen 166  
        4.6.3 Speicher mit »delete« wieder freigeben 167  
     4.7 Strukturen 169  
        4.7.1 Strukturen deklarieren 170  
        4.7.2 Zugriff auf die Strukturelemente 171  
        4.7.3 Zugriff auf die Elemente über Strukturzeiger 172  
        4.7.4 Strukturen vergleichen 174  
        4.7.5 Dynamische Datenstrukturen mit Strukturen 174  
     4.8 Union 178  
     4.9 Aufzählungstyp »enum« 179  
     4.10 Eigene Namen mit »typedef« 182  
     4.11 Aufgaben 183  
        4.11.1 Level 1 184  
        4.11.2 Level 2 184  
        4.11.3 Level 3 186  
  5 Modularisierung 187  
     5.1 Namensräume 187  
        5.1.1 Neuen Namensbereich deklarieren 187  
        5.1.2 Namensbereich verschachteln 190  
        5.1.3 Namensbereich ist ein eigener Gültigkeitsbereich 190  
        5.1.4 Namensbereich mit »using« importieren 193  
        5.1.5 Einzelne Bezeichner mit »using« importieren 193  
        5.1.6 Aliasse für Namensbereiche 194  
        5.1.7 Namensraum »std« 194  
     5.2 Speicherklassenattribute 196  
        5.2.1 Schlüsselwort »extern« 196  
        5.2.2 Schlüsselwort »static« 197  
     5.3 Typqualifikatoren 200  
        5.3.1 Schlüsselwort »const« 200  
        5.3.2 Schlüsselwort »volatile« 201  
     5.4 Weitere Attribute 202  
     5.5 Modulare Programmierung 202  
        5.5.1 Aufteilung 204  
        5.5.2 Die öffentliche Schnittstelle (Headerdatei) 205  
        5.5.3 Private Datei(en) 207  
        5.5.4 Die Client-Datei 207  
        5.5.5 Nur Objektcode oder Bibliothek vorhanden 208  
     5.6 Aufgaben 208  
        5.6.1 Level 1 209  
        5.6.2 Level 2 209  
  6 Klassen 211  
     6.1 Abstraktionsmechanismus 211  
     6.2 Klassen 212  
        6.2.1 Klassendefinition 212  
        6.2.2 Elementfunktionen definieren 214  
        6.2.3 Zugriffskontrolle mit »public« und »private« 216  
        6.2.4 Zugriff auf die Daten innerhalb einer Klasse 218  
        6.2.5 Objekte erzeugen und benutzen 219  
     6.3 Konstruktoren 224  
        6.3.1 Konstruktoren deklarieren 225  
        6.3.2 Konstruktoren definieren 226  
        6.3.3 Implizite Konvertierungen verhindern - »explicit« 228  
        6.3.4 Konstruktoren delegieren (C++11) 230  
        6.3.5 Standardkonstruktor (Default-Konstruktor) 232  
        6.3.6 Kopierkonstruktor 233  
        6.3.7 Move-Konstruktor (C++11) 235  
     6.4 Destruktoren 237  
        6.4.1 Destruktor deklarieren 237  
        6.4.2 Destruktor definieren 238  
     6.5 Elementfunktionen 241  
        6.5.1 Inline-Elementfunktionen 241  
        6.5.2 Konstante Elementfunktionen (read-only) 244  
        6.5.3 »this«-Zeiger 246  
     6.6 Aufgaben 247  
        6.6.1 Level 1 248  
        6.6.2 Level 2 248  
        6.6.3 Level 3 249  
  7 Objekte und Klassenelemente 250  
     7.1 Konstante Objekte 250  
     7.2 Objekte als (Element-)Funktionsargumente 251  
        7.2.1 Hilfsfunktionen 251  
        7.2.2 Wertübergabe als Kopie (Call-by-Value) 252  
        7.2.3 Wertübergabe als Zeiger 254  
        7.2.4 Wertübergabe als Referenz 256  
        7.2.5 Wertübergabe bei Elementfunktionen 257  
        7.2.6 »this«-Zeiger 258  
     7.3 Objekte als Rückgabewerte 261  
     7.4 Arrays von Objekten 263  
     7.5 Dynamische Objekte 264  
     7.6 Mehr zu den Klassenelementen 266  
        7.6.1 Dynamische Klassenelemente 266  
        7.6.2 Statische Klassenelemente 274  
        7.6.3 Konstante Klassenelemente 277  
     7.7 Andere Klassenobjekte als Datenelement einer Klasse 278  
     7.8 Elementinitialisierer 284  
     7.9 Gute Freunde (»friend«) 286  
     7.10 Aufgaben 288  
        7.10.1 Level 1 289  
        7.10.2 Level 2 289  
        7.10.3 Level 3 290  
  8 Operatoren überladen 291  
     8.1 Schlüsselwort »operator« 292  
     8.2 Zweistellige (arithmetische) Operatoren überladen 294  
        8.2.1 Operatorüberladung als Elementfunktion einer Klasse 295  
        8.2.2 Operatorüberladung als globale Hilfsfunktion 298  
        8.2.3 Zweistellige Operatoren zusammengefasst 300  
     8.3 Einstellige Operatoren überladen 300  
     8.4 Zuweisungsoperator überladen 304  
     8.5 Ein-/Ausgabeoperator überladen 306  
        8.5.1 Eingabeoperator >> überladen 307  
        8.5.2 Ausgabeoperator << überladen 308  
     8.6 Weitere Operatorüberladungen 309  
     8.7 Konvertierungsoperatoren 310  
        8.7.1 Konvertierungskonstruktor 311  
        8.7.2 Globale Konvertierungsfunktion 312  
     8.8 Aufgaben 315  
        8.8.1 Level 1 315  
        8.8.2 Level 2 315  
        8.8.3 Level 3 316  
  9 Vererbung (Abgeleitete Klassen) 317  
     9.1 Die Vorbereitung 318  
     9.2 Die Ableitung einer Klasse 319  
        9.2.1 »public«-Zugriffsrechte einer abgeleiteten Klasse 321  
        9.2.2 Erben und erweitern 321  
        9.2.3 Zugriff auf die Daten 322  
        9.2.4 Redefinition von Elementfunktionen 324  
        9.2.5 Konstruktoren 325  
        9.2.6 Destruktor 327  
        9.2.7 Programmbeispiel 327  
        9.2.8 Zugriffsrecht »protected« 328  
        9.2.9 Zugriffsrechte bei der Vererbung von Klassen 329  
        9.2.10 Implizite Typumwandlung abgeleiteter Klassen 331  
        9.2.11 Konstruktoren vererben (C++11) 332  
     9.3 Mehrfachvererbung 333  
     9.4 Virtuelle Vererbung 337  
     9.5 Aufgaben 342  
        9.5.1 Level 1 342  
        9.5.2 Level 2 343  
        9.5.3 Level 3 344  
  10 Templates 345  
     10.1 Funktions-Templates 345  
        10.1.1 Funktions-Template definieren 346  
        10.1.2 Typübereinstimmung 348  
        10.1.3 Funktions-Templates über mehrere Module 349  
        10.1.4 Funktions-Template spezialisieren 349  
        10.1.5 Templates mit verschiedenen Parametern 350  
        10.1.6 Explizite Template-Argumente 352  
     10.2 Klassen-Templates 353  
        10.2.1 Klassen-Template definieren 354  
        10.2.2 Elementfunktionen von Klassen-Templates definieren 355  
        10.2.3 Klassen-Template instantiieren 358  
     10.3 Templates der Standardbibliothek 361  
        10.3.1 Container der Standardbibliothek 362  
        10.3.2 Iteratoren 366  
        10.3.3 Algorithmen 366  
     10.4 Aufgaben 368  
        10.4.1 Level 1 368  
        10.4.2 Level 2 368  
        10.4.3 Level 3 369  
  11 Exception-Handling (Fehlerbehandlung) 371  
     11.1 Exception auslösen 372  
     11.2 Exception auffangen und behandeln 372  
        11.2.1 »terminate«-Handler einrichten 376  
        11.2.2 Alternatives »catch (...)« 377  
        11.2.3 Stack-Abwicklung 377  
     11.3 Ausnahme-Klassen (Fehlerklassen) 378  
     11.4 Standard-Exceptions 380  
        11.4.1 Virtuelle Methode »what()« 381  
        11.4.2 Anwenden der Standard-Exceptions 381  
     11.5 System-Exceptions 385  
        11.5.1 »bad_alloc« 385  
        11.5.2 »bad_cast« 385  
        11.5.3 »bad_typeid« 385  
        11.5.4 »bad_exception« 386  
     11.6 »noexcept« (C++11) 386  
     11.7 Aufgaben 388  
        11.7.1 Level 1 388  
  12 Weitere Neuigkeiten in C++11 389  
     12.1 Grundsätzliche Neuerungen in der Kernsprache 389  
        12.1.1 Range-based »for«-Schleife 389  
        12.1.2 Lambda-Funktionen 390  
        12.1.3 RValue (neue Move-Semantik) 391  
        12.1.4 Generische Programmierung - Variadic Templates 392  
        12.1.5 »decltype« und die neue Rückgabesyntax 394  
        12.1.6 »constexpr« 397  
     12.2 Standardbibliothek - neue Bibliotheken 398  
        12.2.1 Reguläre Ausdrücke 398  
        12.2.2 Zeitbibliothek 400  
        12.2.3 Smart Pointer 404  
     12.3 Multithreading 407  
        12.3.1 Einfache Threads erzeugen 408  
        12.3.2 Chaos vermeiden 410  
  Lösungen der Übungsaufgaben 413  
     Lösungen zu Kapitel 2 413  
        Lösungen Level 1 413  
        Lösungen Level 2 413  
        Lösung Level 3 414  
     Lösungen zu Kapitel 3 415  
        Lösungen Level 1 415  
        Lösungen Level 2 416  
        Lösungen Level 3 417  
     Lösungen zu Kapitel 4 418  
        Lösungen Level 1 418  
        Lösungen Level 2 420  
        Lösungen Level 3 421  
     Lösungen zu Kapitel 5 422  
        Lösungen Level 1 422  
        Lösungen Level 2 423  
     Lösungen zu Kapitel 6 424  
        Lösungen Level 1 424  
        Lösungen Level 2 425  
        Lösung Level 3 426  
     Lösungen zu Kapitel 7 428  
        Lösungen Level 1 428  
        Lösungen Level 2 428  
        Lösungen Level 3 429  
     Lösungen zu Kapitel 8 432  
        Lösungen Level 1 432  
        Lösung Level 2 433  
        Lösung Level 3 434  
     Lösungen zu Kapitel 9 435  
        Lösungen Level 1 435  
        Lösung Level 2 436  
        Lösung Level 3 437  
     Lösungen zu Kapitel 10 438  
        Lösungen Level 1 438  
        Lösungen Level 2 438  
        Lösung Level 3 439  
     Lösungen zu Kapitel 11 440  
        Lösungen Level 1 440  


nach oben


  Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zu eBooks?

  Navigation
Belletristik / Romane
Computer
Geschichte
Kultur
Medizin / Gesundheit
Philosophie / Religion
Politik
Psychologie / Pädagogik
Ratgeber
Recht
Reise / Hobbys
Sexualität / Erotik
Technik / Wissen
Wirtschaft

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek
© 2008-2024 ciando GmbH | Impressum | Kontakt | F.A.Q. | Datenschutz