C++
Das umfassende Handbuch. Das Lehr- und Nachschlagewerk zu Modernem C++. Spachgrundlagen, OOP, Standardbibliothek, parallele Programmierung, GUI-Programmierung mit Qt u. v. m. Guidelines und Techniken für
Das Handbuch führt Sie in die moderne C++-Entwicklung ein und zeigt, wie Sie Programme mit höchsten Ansprüchen an Funktionalität, Effizienz und Sicherheit entwickeln. Im ersten Teil lernen Sie alles über den Sprachkern: wie er aufgebaut ist und welche...
Leider schon ausverkauft
versandkostenfrei
Buch (Gebunden)
Fr. 49.90
inkl. MwSt.
- Kreditkarte, Paypal, Rechnungskauf
- 30 Tage Widerrufsrecht
Produktdetails
Produktinformationen zu „C++ “
Klappentext zu „C++ “
Das Handbuch führt Sie in die moderne C++-Entwicklung ein und zeigt, wie Sie Programme mit höchsten Ansprüchen an Funktionalität, Effizienz und Sicherheit entwickeln. Im ersten Teil lernen Sie alles über den Sprachkern: wie er aufgebaut ist und welche Elemente es gibt. Dieser Teil ist zugleich eine Einführung in C++ für alle, die keine Vorkenntnisse haben. Im zweiten Teil wird ausführlich die objektorientierte Programmierung behandelt. Im Teil über die Standardbibliothek erfahren Sie alles zu den Werkzeugen und Konzepten, die Sie benötigen, um guten C++-Code zu entwickeln. Zum Schluss erhalten Sie einen Einblick in die C++ Core Guidlines und lernen die GUI-Entwicklung mit Qt kennen.Aus dem Inhalt:SprachgrundlagenFehlerbehandlungObjektorientierte ProgrammierungZeigerSchnittstelle zu CTemplatesContainerStandardbibliothekC++ Core GuidelinesGUI-Programmierung mit QtExtra: Tutorials zum Thema "guter Code"Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Empfehlung der Redaktion!«
Inhaltsverzeichnis zu „C++ “
Vorwort ... 23TEIL I Grundlagen ... 27 1. Das C++-Handbuch ... 29 1.1 ... Neu und Modern ... 30 1.2 ... »Dan«-Kapitel ... 30 1.3 ... Darstellung in diesem Buch ... 31 1.4 ... Verwendete Formatierungen ... 31 1.5 ... Sorry for my Denglish ... 32 2. Programmieren in C++ ... 35 2.1 ... Übersetzen ... 36 2.2 ... Übersetzungsphasen ... 36 2.3 ... Aktuelle Compiler ... 38 2.4 ... Entwicklungsumgebungen ... 39 2.5 ... Die Kommandozeile unter Ubuntu ... 40 2.6 ... Die IDE »Microsoft Visual Studio Community« unter Windows ... 44 2.7 ... Das Beispielprogramm beschleunigen ... 46 3. C++ für Umsteiger ... 49 4. Die Grundbausteine von C++ ... 55 4.1 ... Kommentare ... 58 4.2 ... Die »include«-Direktive ... 58 4.3 ... Die Standardbibliothek ... 58 4.4 ... Die Funktion »main()« ... 59 4.5 ... Typen ... 59 4.6 ... Variablen ... 60 4.7 ... Initialisierung ... 60 4.8 ... Ausgabe auf der Konsole ... 61 4.9 ... Anweisungen ... 61 4.10 ... Ohne Eile erklärt ... 62 4.11 ... Operatoren ... 85 4.12 ... Eingebaute Datentypen ... 98 4.13 ... Undefiniertes und unspezifiziertes Verhalten ... 132 5. Guter Code, 1. Dan: Lesbar programmieren ... 135 5.1 ... Kommentare ... 135 5.2 ... Dokumentation ... 136 5.3 ... Einrückungen und Zeilenlänge ... 137 5.4 ... Zeilen pro Funktion und Datei ... 138 5.5 ... Klammern und Leerzeichen ... 139 5.6 ... Namen ... 140 6. Höhere Datentypen ... 143 6.1 ... Strings und Streams ... 144 6.2 ... Der Zeichenkettentyp »string« ... 144 6.3 ... Streams ... 148 6.4 ... Behälter und Zeiger ... 155 6.5 ... Die einfachen Sequenzcontainer ... 156 6.6 ... Algorithmen ... 161 6.7 ... Zeiger und C-Arrays ... 161 7. Funktionen ... 163 7.1 ... Deklaration und Definition einer Funktion ... 164 7.2 ... Funktionstyp ... 165 7.3 ... Funktionen verwenden ... 165 7.4 ... Eine Funktion definieren ... 167 7.5 ... Mehr zu Parametern ... 168 7.6 ... Funktionskörper ... 172 7.7 ... Parameter umwandeln ... 173 7.8 ... Funktionen überladen ... 175 7.9 ... Default-Parameter ... 177 7.10 ...
... mehr
Beliebig viele Argumente ... 179 7.11 ... Alternative Schreibweise zur Funktionsdeklaration ... 179 7.12 ... Spezialitäten ... 180 8. Anweisungen im Detail ... 185 8.1 ... Der Anweisungsblock ... 188 8.2 ... Die leere Anweisung ... 190 8.3 ... Deklarationsanweisung ... 191 8.4 ... Die Ausdrucksanweisung ... 192 8.5 ... Die »if«-Anweisung ... 193 8.6 ... Die »while«-Schleife ... 195 8.7 ... Die »do-while«-Schleife ... 197 8.8 ... Die »for«-Schleife ... 198 8.9 ... Die bereichsbasierte »for«-Schleife ... 200 8.10 ... Die »switch«-Verzweigung ... 202 8.11 ... Die »break«-Anweisung ... 206 8.12 ... Die »continue«-Anweisung ... 207 8.13 ... Die »return«-Anweisung ... 207 8.14 ... Die »goto«-Anweisung ... 209 8.15 ... Der »try-catch«-Block und »throw« ... 210 8.16 ... Zusammenfassung ... 212 9. Ausdrücke im Detail ... 213 9.1 ... Berechnungen und Seiteneffekte ... 214 9.2 ... Arten von Ausdrücken ... 215 9.3 ... Literale ... 216 9.4 ... Bezeichner ... 216 9.5 ... Klammern ... 217 9.6 ... Funktionsaufruf und Index-Zugriff ... 218 9.7 ... Zuweisung ... 218 9.8 ... Typumwandlung ... 22010. Fehlerbehandlung ... 221 10.1 ... Fehlerbehandlung mit Fehlercodes ... 223 10.2 ... Was ist eine Ausnahme? ... 226 10.3 ... Kleinere Fehlerbehandlungen ... 229 10.4 ... Weiterwerfen -- »rethrow« ... 229 10.5 ... Die Reihenfolge im »catch« ... 230 10.6 ... Typen für Exceptions ... 232 10.7 ... Wenn eine Exception aus »main« herausfällt ... 23311. Guter Code, 2. Dan: Modularisierung ... 235 11.1 ... Programm, Bibliothek, Objektdatei ... 235 11.2 ... Bausteine ... 236 11.3 ... Trennen der Funktionalitäten ... 237 11.4 ... Ein modulares Beispielprojekt ... 238 11.5 ... Spezialthema: Unity-Builds ... 249TEIL II Objektorientierte Programmierung und mehr ... 25112. Von der Struktur zur Klasse ... 253 12.1 ... Initialisierung ... 255 12.2 ... Rückgabe eigener Typen ... 256 12.3 ... Methoden statt Funktionen ... 257 12.4 ... Das bessere »drucke« ... 260 12.5 ... Eine Ausgabe wie jede andere ... 262 12.6 ... Methoden inline definieren ... 263 12.7 ... Implementierung und Definition trennen ... 264 12.8 ... Initialisierung per Konstruktor ... 265 12.9 ... Struktur oder Klasse? ... 271 12.10 ... Zwischenergebnis ... 275 12.11 ... Verwendung eigener Datentypen ... 276 12.12 ... Typinferenz mit »auto« ... 291 12.13 ... Eigene Klassen in Standardcontainern ... 29413. Namensräume und Qualifizierer ... 297 13.1 ... Der Namensraum »std« ... 297 13.2 ... Anonymer Namensraum ... 301 13.3 ... »static« macht lokal ... 303 13.4 ... »static« teilt gern ... 303 13.5 ... »static« macht dauerhaft ... 306 13.6 ... Zusammenfassung ... 309 13.7 ... Const ... 310 13.8 ... Flüchtig mit »volatile« ... 32414. Guter Code, 3. Dan: Testen ... 327 14.1 ... Arten des Tests ... 327 14.2 ... Frameworks ... 335 14.3 ... Boost.Test ... 339 14.4 ... Hilfsmakros für Assertions ... 343 14.5 ... Ein Beispielprojekt mit Unittests ... 34615. Vererbung ... 359 15.1 ... Beziehungen ... 360 15.2 ... Vererbung in C++ ... 362 15.3 ... Hat-ein versus ist-ein ... 363 15.4 ... Gemeinsamkeiten finden ... 364 15.5 ... Abgeleitete Typen erweitern ... 366 15.6 ... Methoden überschreiben ... 367 15.7 ... Wie Methoden funktionieren ... 368 15.8 ... Virtuelle Methoden ... 370 15.9 ... Konstruktoren in Klassenhierarchien ... 372 15.10 ... Typumwandlung in Klassenhierarchien ... 373 15.11 ... Wann virtuell? ... 375 15.12 ... Andere Designs zur Erweiterbarkeit ... 37616. Der Lebenszyklus von Klassen ... 379 16.1 ... Erzeugung und Zerstörung ... 380 16.2 ... Temporary: kurzlebige Werte ... 382 16.3 ... Der Destruktor zum Konstruktor ... 383 16.4 ... Yoda-Bedingung ... 387 16.5 ... Konstruktion, Destruktion und Exceptions ... 389 16.6 ... Kopieren ... 390 16.7 ... Zuweisungsoperator ... 393 16.8 ... Streichen von Methoden ... 396 16.9 ... Verschiebeoperationen ... 398 16.10 ... Operatoren ... 403 16.11 ... Eigene Operatoren in einem Datentyp ... 406 16.12 ... Besondere Klassenformen ... 41117. Guter Code, 4. Dan: Sicherheit, Qualität und Nachhaltigkeit ... 415 17.1 ... Die Nuller-Regel ... 415 17.2 ... RAII -- Resource Acquisition Is Initialization ... 42018. Spezielles für Klassen ... 429 18.1 ... Darf alles sehen -- »friend«-Klassen ... 429 18.2 ... non-public-Vererbung ... 434 18.3 ... Signatur-Klassen als Interfaces ... 439 18.4 ... Multiple Vererbung ... 443 18.5 ... Rautenförmige multiple Vererbung -- »virtual« für Klassenhierarchien ... 452 18.6 ... Literale Datentypen -- »constexpr« für Konstruktoren ... 45619. Guter Code, 5. Dan: Klassisches objektorientiertes Design ... 459 19.1 ... Objekte in C++ ... 461 19.2 ... Objektorientiert designen ... 462TEIL III Fortgeschrittene Themen ... 48120. Zeiger ... 483 20.1 ... Adressen ... 484 20.2 ... Zeiger ... 485 20.3 ... Gefahren von Aliasing ... 487 20.4 ... Heapspeicher und Stapelspeicher ... 489 20.5 ... Smarte Pointer ... 492 20.6 ... Rohe Zeiger ... 501 20.7 ... C-Arrays ... 506 20.8 ... Iteratoren ... 511 20.9 ... Zeiger als Iteratoren ... 513 20.10 ... Zeiger im Container ... 513 20.11 ... Die Ausnahme: wann das Wegräumen nicht nötig ist ... 51421. Makros ... 517 21.1 ... Der Präprozessor ... 518 21.2 ... Vorsicht vor fehlenden Klammern ... 521 21.3 ... Vorsicht vor Mehrfachausführung ... 522 21.4 ... Typvariabilität von Makros ... 523 21.5 ... Zusammenfassung ... 52622. Schnittstelle zu C ... 527 22.1 ... Mit Bibliotheken arbeiten ... 528 22.2 ... C-Header ... 529 22.3 ... C-Ressourcen ... 532 22.4 ... »void«-Pointer ... 532 22.5 ... Daten lesen ... 533 22.6 ... Das Hauptprogramm ... 534 22.7 ... Zusammenfassung ... 53523. Templates ... 537 23.1 ... Funktionstemplates ... 538 23.2 ... Funktionstemplates in der Standardbibliothek ... 547 23.3 ... Eine Klasse als Funktion ... 551 23.4 ... Templateklassen ... 565 23.5 ... Templates mit variabler Argumentanzahl ... 576 23.6 ... Eigene Literale ... 580TEIL IV Die Standardbibliothek ... 59124. Container ... 593 24.1 ... Grundlagen ... 594 24.2 ... Iteratoren-Grundlagen ... 601 24.3 ... Allokatoren: Speicherfragen ... 605 24.4 ... Container-Gemeinsamkeiten ... 607 24.5 ... Ein Überblick über die Standardcontainer-Klassen ... 608 24.6 ... Die sequenziellen Containerklassen ... 612 24.7 ... Assoziativ und geordnet ... 647 24.8 ... Nur assoziativ und nicht garantiert ... 678 24.9 ... Container-Adapter ... 706 24.10 ... Sonderfälle: »string«, »basic string« und »vector« ... 707 24.11 ... Sonderfälle: »vector«, »array« und »bitset« ... 708 24.12 ... Sonderfall: Value-Array mit »valarray« ... 71125. Container-Unterstützung ... 721 25.1 ... Algorithmen ... 721 25.2 ... Iteratoren ... 723 25.3 ... Iterator-Adapter ... 723 25.4 ... Algorithmen der Standardbibliothek ... 724 25.5 ... Liste der Algorithmusfunktionen ... 726 25.6 ... Kopie statt Zuweisung -- Werte in uninitialisierten Speicherbereichen ... 740 25.7 ... Eigene Algorithmen ... 74126. Guter Code, 6. Dan: Für jede Aufgabe der richtige Container ... 745 26.1 ... Alle Container nach Aspekten sortiert ... 745 26.2 ... Rezepte für Container ... 750 26.3 ... Iteratoren sind mehr als nur Zeiger ... 756 26.4 ... Algorithmen je nach Container unterschiedlich implementieren ... 75827. Streams ... 761 27.1 ... Ein- und Ausgabekonzept ... 761 27.2 ... Globale, vordefinierte Standardstreams ... 762 27.3 ... Methoden für die Aus- und Eingabe von Streams ... 764 27.4 ... Fehlerbehandlung und Zustand von Streams ... 768 27.5 ... Streams manipulieren und formatieren ... 771 27.6 ... Streams für die Dateiein- und Dateiausgabe ... 782 27.7 ... Streams für Strings ... 796 27.8 ... Streampuffer ... 80128. Standardbibliothek -- Extras ... 805 28.1 ... »pair« und »tuple« ... 805 28.2 ... Reguläre Ausdrücke ... 812 28.3 ... Zufall ... 821 28.4 ... Mathematisches ... 830 28.5 ... Systemfehlerbehandlung mit »system error« ... 849 28.6 ... Laufzeit-Typinformationen -- »« und »« ... 858 28.7 ... Hilfsklassen rund um Funktoren -- »« ... 862 28.8 ... Ausblick auf C++17 ... 86929. Threads -- Programmieren mit Mehrläufigkeit ... 875 29.1 ... C++-Threading-Grundlagen ... 876 29.2 ... Gemeinsame Daten ... 891 29.3 ... Andere Möglichkeiten zur Synchronisation ... 904 29.4 ... Im eigenen Speicher mit »thread local« ... 908 29.5 ... Mit »condition variable« auf Ereignisse warten ... 909 29.6 ... Einmal warten mit »future« ... 914 29.7 ... Atomics ... 924 29.8 ... Zusammenfassung ... 930 29.9 ... Ausblick auf C++17 ... 932TEIL V Über den Standard hinaus ... 93330. Guter Code, 7. Dan: Richtlinien ... 935 30.1 ... Guideline Support Library ... 936 30.2 ... C++ Core Guidelines ... 93731. GUI-Programmierung mit Qt ... 951 31.1 ... Ein erstes Miniprogramm ... 955 31.2 ... Objektbäume und Besitz ... 966 31.3 ... Signale und Slots ... 967 31.4 ... Klassenhierarchie von Qt ... 987 31.5 ... Eigene Widgets mit dem Qt Designer erstellen ... 990 31.6 ... Widgets anordnen ... 996 31.7 ... Dialoge erstellen mit »QDialog« ... 1000 31.8 ... Vorgefertigte Dialoge von Qt ... 1008 31.9 ... Eigenen Dialog mit dem Qt Designer erstellen ... 1015 31.10 ... Grafische Bedienelemente von Qt (Qt-Widgets) ... 1031 31.11 ... Anwendungen in einem Hauptfenster ... 1037 31.12 ... Zusammenfassung ... 1048 Cheat Sheet ... 1052 Index ... 1055
... weniger
Autoren-Porträt von Torsten T. Will
Will, Torsten T.Torsten T. Will, Jahrgang 1970, beschäftigte sich bereits während seines Diploms in Informatik mit Programmiersprachen und ihren Konzepten. C++ hat ihn schon in seinen Anfängen fasziniert und begleitet. Andere Programmierprojekte bewältigte er vor allem in Pascal, Java, Scala und Python. Seit 2004 schreibt er im Fachmagazin c't gelegentlich über C++ und Python. Was dann noch an Zeit übrig bleibt, geht in die Fotografie.
Bibliographische Angaben
- Autor: Torsten T. Will
- 2017, 1067 Seiten, mit Abbildungen, Masse: 18,2 x 25 cm, Gebunden, Deutsch
- Verlag: Rheinwerk Verlag
- ISBN-10: 3836243601
- ISBN-13: 9783836243605
Rezension zu „C++ “
Die Fachpresse zur Vorauflage:iX - Magazin für professionelle Informationstechnik: "Empfehlung der Redaktion!"
Kommentar zu "C++"
0 Gebrauchte Artikel zu „C++“
Zustand | Preis | Porto | Zahlung | Verkäufer | Rating |
---|
Schreiben Sie einen Kommentar zu "C++".
Kommentar verfassen