UID:
kobvindex_ERBEBC6829116
Umfang:
1 online resource (497 pages)
Ausgabe:
4
ISBN:
9783836276382
Anmerkung:
Intro -- 1 Einstieg in die Welt von C++ -- 1.1 Der C++-Standard -- 1.2 Die nötigen Werkzeuge für C++ -- 1.3 Übersetzen mit g++ und clang++ -- 1.4 Übersetzen mit einer Entwicklungsumgebung -- 1.5 Listings zum Buch -- 1.6 Kontrollfragen und Aufgaben im Buch -- 1.7 Aufgabe -- 2 Erste Schritte in C++ -- 2.1 Das erste Programm in C++ -- 2.2 Anweisungen und Ausdrücke -- 2.3 Die Standard-Eingabe- und Ausgabestreams -- 2.3.1 Die Streams von C++ -- 2.3.2 Ausgabe mit »std::cout« -- 2.3.3 Eingabe mit »std::cin« -- 2.3.4 Ausgabe mit »std::cerr« -- 2.4 Einige Begriffe zu C++ -- 2.4.1 Bezeichner -- 2.4.2 Literale -- 2.4.3 Kommentare -- 2.5 Kontrollfragen und Aufgaben -- 3 Die eingebauten C++-Basisdatentypen -- 3.1 Variablen -- 3.2 Definition und Deklaration von Variablen -- 3.3 Initialisierung und Zuweisung von Werten -- 3.4 Ganzzahltypen -- 3.4.1 Literale von Ganzzahltypen -- 3.5 Ganzzahldatentyp für Zeichen -- 3.5.1 Weitere Datentypen für Zeichen -- 3.5.2 Die Unicode-Typen »char8_t«, »char16_t« und »char32_t« -- 3.6 Fließkommazahlentypen -- 3.6.1 Literale von Fließkommazahlen -- 3.7 Der »auto«-Typ -- 3.8 Konstanten -- 3.9 Die Byte-Größe mit dem »sizeof«-Operator -- 3.10 Limits für die Basisdatentypen -- 3.11 Kontrollfragen und Aufgaben -- 4 Arbeiten mit den eingebauten Typen -- 4.1 Arithmetische Operatoren -- 4.1.1 Kurzschreibweise arithmetischer Operatoren -- 4.1.2 Inkrement- und Dekrementoperator -- 4.2 Ungenaue Fließkommazahlen -- 4.3 Typumwandlung -- 4.3.1 Implizite Umwandlung durch den Compiler -- 4.3.2 Automatische Typumwandlung beschränken -- 4.3.3 Explizite Typumwandlung -- 4.4 Kontrollfragen und Aufgaben -- 5 Kontrollstrukturen -- 5.1 Der eingebaute Datentyp »bool« -- 5.2 Vergleichsoperatoren -- 5.3 Bedingte Anweisung mit »if« -- 5.4 Anweisungsblock für Kontrollstrukturen -- 5.5 Alternative »else«-Verzweigung
,
5.6 Bedingte Anweisung mit Initialisierung -- 5.7 Mehrfache Verzweigung -- 5.8 Der Bedingungsoperator »?:« -- 5.9 Logische Operatoren -- 5.10 Die Fallunterscheidung - »switch« -- 5.11 Die kopfgesteuerte »while«-Schleife -- 5.12 Die fußgesteuerte »do while«-Schleife -- 5.13 Die Zählschleife »for« -- 5.14 Kontrollierte Sprunganweisungen -- 5.14.1 Die »break«-Anweisung -- 5.14.2 Die »continue«-Anweisung -- 5.15 Kontrollfragen und Aufgaben -- 6 Arrays und Strings -- 6.1 Arrays -- 6.1.1 Der C++-Container »std::vector« -- 6.1.2 Der C++-Container »std::array« -- 6.1.3 C-Arrays -- 6.2 Strings in C++ -- 6.2.1 Der C++-Container »std::string« -- 6.2.2 Unterstützung von Unicode -- 6.2.3 C-Zeichenketten -- 6.2.4 Zeichenkettenliterale -- 6.3 Kontrollfragen und Aufgaben -- 7 Referenzen und Zeiger -- 7.1 Referenzen -- 7.2 Zeiger -- 7.2.1 Die Syntax von Zeigern -- 7.2.2 Zeiger dereferenzieren -- 7.2.3 Der Zeiger »nullptr« -- 7.2.4 Zeiger prüfen -- 7.2.5 Adresse einer Referenz -- 7.2.6 Verwendung von Zeigern und Alternativen -- 7.3 Kontrollfragen und Aufgaben -- 8 Funktionen -- 8.1 Grundlage zu den Funktionen -- 8.1.1 Funktionen definieren -- 8.1.2 Funktionen aufrufen -- 8.1.3 Funktionen deklarieren -- 8.1.4 Funktionsparameter (Call-by-Value) -- 8.1.5 Konstante Funktionsparameter -- 8.1.6 Standardparameter -- 8.1.7 Rückgabe aus Funktionen -- 8.1.8 Funktionen überladen -- 8.1.9 Gültigkeitsbereich und Sichtbarkeit von Variablen -- 8.1.10 Die »main()«-Funktion -- 8.1.11 Aufruf eines Programms mit Parametern -- 8.1.12 Programmende -- 8.2 Referenzen als Parameter und Rückgabe -- 8.2.1 Referenzen als Parameter -- 8.2.2 Konstante Funktionsparameter -- 8.2.3 Referenzen als Rückgabe -- 8.3 Zeiger als Parameter und Rückgabewert -- 8.3.1 Referenzen vs. Zeiger als Parameter -- 8.4 Übergabe großer Elemente als Funktionsparameter
,
8.5 C-Arrays oder C-Strings als Funktionsparameter -- 8.6 Kontrollfragen und Aufgaben -- 9 Modularisierung und Präprozessor -- 9.1 Präprozessor-Direktiven -- 9.1.1 Die »#include«-Direktive -- 9.1.2 Die »#define«-Direktive -- 9.1.3 Bedingte Kompilierung -- 9.2 Modularisierung -- 9.2.1 Aufteilung -- 9.2.2 Die öffentliche Schnittstelle (Headerdatei) -- 9.2.3 Die nicht öffentliche(n) Datei(en) -- 9.2.4 Die Client-Datei -- 9.2.5 Aufgabe -- 9.2.6 Nur Objektcode oder Bibliothek vorhanden -- 9.3 Namensräume -- 9.3.1 Namensraum deklarieren und verwenden -- 9.3.2 Namensraum verschachteln -- 9.3.3 Ein Namensraum ist ein eigener Gültigkeitsbereich -- 9.3.4 Namensraum mit »using« importieren -- 9.3.5 Einzelne Bezeichner mit »using« importieren -- 9.3.6 Aliasse für Namensräume -- 9.3.7 Anonymer Namensraum -- 9.3.8 Der Namensraum »std« -- 9.4 Spezifizierer und Qualifikatoren -- 9.4.1 Das Schlüsselwort »static« -- 9.4.2 Das Schlüsselwort »extern« -- 9.4.3 Das Schlüsselwort »constexpr« -- 9.4.4 Das Schlüsselwort »const« -- 9.4.5 Das Schlüsselwort »inline« -- 9.5 Kontrollfragen und Aufgaben -- 10 Strukturen, Aufzählungen und dynamische Speicherobjekte -- 10.1 Erste eigene Datentypen mit Strukturen -- 10.1.1 Strukturen definieren, Elemente erzeugen und initialisieren -- 10.1.2 Zugriff auf die Strukturelemente -- 10.1.3 Zugriff auf die Elemente in einer Funktion -- 10.1.4 Strukturen in einem Vektor oder Array -- 10.1.5 Methoden statt Funktionen -- 10.1.6 Strukturen vergleichen -- 10.2 Aufzählungstyp »enum« -- 10.3 Eigene Namen mit »using« -- 10.4 Dynamische Speicherobjekte -- 10.4.1 Dynamisch Objekte mit »new« und »delete« anlegen und freigeben -- 10.4.2 Dynamisch Arrays mit »new[ ]« anlegen und mit »delete[ ]« freigeben -- 10.4.3 Der smarte »unique_ptr«-Pointer -- 10.5 Kontrollfragen und Aufgaben -- 11 Klassen -- 11.1 Klassen -- 11.1.1 Klassendefinition
,
11.1.2 Zugriffskontrolle mit »public« und »private« -- 11.1.3 Methoden definieren -- 11.1.4 Objekte erzeugen und benutzen -- 11.2 Konstruktoren -- 11.2.1 Konstruktoren deklarieren -- 11.2.2 Konstruktoren definieren -- 11.2.3 Konstruktoren delegieren -- 11.2.4 Der Standardkonstruktor (Default-Konstruktor) -- 11.2.5 Implizite Konvertierungen und ihre Verhinderung - »explicit« -- 11.2.6 Der Kopierkonstruktor (Copy-Konstruktor) -- 11.2.7 Der Verschiebekonstruktor (Move-Konstruktor) -- 11.3 Destruktoren -- 11.3.1 Die Lebensdauer eines Objekts -- 11.3.2 Wann ist ein Destruktor erforderlich? -- 11.3.3 Destruktor deklarieren -- 11.3.4 Destruktor definieren -- 11.4 Weitere Formen von Methoden -- 11.4.1 »inline«-Methoden -- 11.4.2 Konstante Methoden (»nur-lesend«) -- 11.4.3 Konstante Methoden explizit ausschließen -- 11.4.4 »this«-Zeiger -- 11.5 Kontrollfragen und Aufgaben -- 12 Objekte und Klassenelemente -- 12.1 Objekt als Parameter -- 12.1.1 Objekte an eine Funktion übergeben -- 12.1.2 Objekte an eine Methode übergeben -- 12.2 Freundfunktionen (»friend«) -- 12.3 Objekte einer Klasse als Rückgabewerte -- 12.3.1 Referenzen auf eine Klasse als Rückgabewerte -- 12.4 Arrays von Objekten -- 12.5 Dynamische Objekte -- 12.6 Klassenobjekte als Klassenattribute -- 12.7 Containerklasse als Klassenattribut -- 12.8 Smart Pointer als Klassenattribut -- 12.9 Statische und konstante Klassenelemente -- 12.9.1 Statische Klassenelemente -- 12.9.2 Konstante Klassenelemente -- 12.9.3 Rohe Zeiger als Klassenelemente oder direkt die Nullregel -- 12.10 Die Nullregel (Rule of Zero) -- 12.10.1 Die großen fünf -- 12.11 Kontrollfragen und Aufgaben -- 13 Operatoren überladen -- 13.1 Das Schlüsselwort »operator« -- 13.2 Zweistellige (arithmetische) Operatoren überladen -- 13.2.1 Operatorüberladung als Methode einer Klasse -- 13.2.2 Operatorüberladung als globale Hilfsfunktion
,
13.3 Einstellige Operatoren überladen -- 13.4 Den Zuweisungsoperator überladen -- 13.5 Ausgabe- und Eingabeoperatoren überladen -- 13.5.1 Den Ausgabeoperator »< -- < -- « überladen -- 13.5.2 Den Eingabeoperator »> -- > -- « überladen -- 13.6 Vergleichsoperatoren -- 13.6.1 Der Drei-Wege-Vergleichsoperator -- 13.7 Weitere Operatorüberladungen -- 13.8 Konvertierungsoperatoren -- 13.8.1 Der Konvertierungskonstruktor -- 13.8.2 Die Konvertierungsfunktion -- 13.9 Kontrollfragen und Aufgaben -- 14 Vererbung (Abgeleitete Klassen) -- 14.1 Die Vorbereitung -- 14.2 Das Ableiten einer Klasse -- 14.2.1 Erben und erweitern -- 14.2.2 »public«-Zugriffsrechte einer abgeleiteten Klasse -- 14.2.3 Methoden überschreiben -- 14.2.4 Konstruktoren -- 14.2.5 Programmbeispiel -- 14.2.6 Konstruktoren vererben -- 14.2.7 Destruktor -- 14.2.8 Die Zugriffsspezifikation »protected« -- 14.2.9 Implizite Typumwandlung abgeleiteter Klassen -- 14.2.10 Überschreiben mit virtuellen Methoden -- 14.2.11 Abstrakte Klassen und rein virtuelle Methoden -- 14.3 Kontrollfragen und Aufgaben -- 15 Templates -- 15.1 Funktions-Templates -- 15.1.1 Funktions-Template definieren -- 15.1.2 Funktions-Templates über mehrere Module -- 15.1.3 Ein Funktions-Template spezialisieren -- 15.1.4 Templates mit verschiedenen Parametern -- 15.1.5 Explizite Template-Argumente -- 15.1.6 Wiederverwendbare Templates -- 15.2 Klassen-Templates -- 15.2.1 Klassen-Template definieren -- 15.2.2 Template-Methoden definieren -- 15.2.3 Template-Methoden spezialisieren -- 15.2.4 Klassen-Template instanziieren -- 15.2.5 Klassen-Template mit mehreren formalen Parametern -- 15.3 Templates der Standardbibliothek -- 15.3.1 Iteratoren -- 15.3.2 Algorithmen -- 15.4 Kontrollfragen und Aufgaben -- 16 Ausnahmebehandlung (Fehlerbehandlung) -- 16.1 Eine Ausnahme auslösen -- 16.2 Ausnahme auffangen und behandeln
,
16.2.1 Alternatives »catch (...)«
Weitere Ausg.:
Print version: Wolf, Jürgen Grundkurs C++ Bonn : Rheinwerk Verlag,c2021 ISBN 9783836276368
Schlagwort(e):
Electronic books.
URL:
https://ebookcentral.proquest.com/lib/th-brandenburg/detail.action?docID=6829116