Bis zu 50 % günstiger als neu 3 Jahre rebuy Garantie Professionelles Refurbishment
ElektronikMedien
Tipps & News
AppleAlle anzeigen
TabletsAlle anzeigen
HandyAlle anzeigen
Fairphone
AppleAlle anzeigen
iPhone Air Generation
GoogleAlle anzeigen
Pixel Fold
HonorAlle anzeigen
HuaweiAlle anzeigen
Honor SerieY-Serie
NothingAlle anzeigen
OnePlusAlle anzeigen
OnePlus 11 GenerationOnePlus 12 Generation
SamsungAlle anzeigen
Galaxy XcoverWeitere Modelle
SonyAlle anzeigen
Weitere Modelle
XiaomiAlle anzeigen
Weitere Modelle
Tablets & eBook ReaderAlle anzeigen
Google
AppleAlle anzeigen
HuaweiAlle anzeigen
MatePad Pro Serie
MicrosoftAlle anzeigen
XiaomiAlle anzeigen
Kameras & ZubehörAlle anzeigen
ObjektiveAlle anzeigen
System & SpiegelreflexAlle anzeigen
WearablesAlle anzeigen
Fitness TrackerAlle anzeigen
SmartwatchesAlle anzeigen
Xiaomi
Konsolen & ZubehörAlle anzeigen
Lenovo Legion GoMSI Claw
NintendoAlle anzeigen
Nintendo Switch Lite
PlayStationAlle anzeigen
XboxAlle anzeigen
Audio & HiFiAlle anzeigen
KopfhörerAlle anzeigen
FairphoneGoogle
LautsprecherAlle anzeigen
Beats by Dr. DreGoogleYamahatonies
iPodAlle anzeigen

Handgeprüfte Gebrauchtware

Bis zu 50 % günstiger als neu

Der Umwelt zuliebe

Optischer Zustand
  • Sichtbare Gebrauchsspuren auf einzelnen Seiten
  • z. B. umfangreiche Markierungen/Notizen, ausgefranste Kanten des Buchumschlags, Wasserschäden, deutliche Verformung des gesamten Buches sowie größere Verschmutzungen durch mehrmaligem Gebrauch
  • Könnte ein Mängelexemplar sein oder ein abweichendes Cover haben (z. B. Clubausgaben)
  • Gut für den Eigenbedarf geeignet
Beschreibung
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: Sprachgrundlagen Fehlerbehandlung Objektorientierte Programmierung Zeiger Schnittstelle zu C Templates Container Standardbibliothek C++ Core Guidelines GUI-Programmierung mit Qt Extra: Tutorials zum Thema „guter Code“ Die Fachpresse zur Vorauflage: iX - Magazin für professionelle Informationstechnik: »Empfehlung der Redaktion!«
neu 39,90 € -87 %*
4,99 €
Gebundene Ausgabe | Gut
Nur noch 1 verfügbar! Versandbereit in 2-3 Werktagen
zzgl.
Nur noch 1 verfügbar! Versandbereit in 2-3 Werktagen
zzgl.

Handgeprüfte Gebrauchtware

Bis zu 50 % günstiger als neu

Der Umwelt zuliebe

* Spare 87 % gegenüber Neuware
Der Streichpreis bezieht sich auf den festgelegten Preis für Neuware.

Technische Daten


Erscheinungsdatum
28.12.2017
Sprache
Deutsch
EAN
9783836243605
Herausgeber
Rheinwerk
Sonderedition
Nein
Autor
Torsten T. Will
Seitenanzahl
1067
Auflage
1
Einbandart
Gebundene Ausgabe
Buch Untertitel
Das umfassende Handbuch zu Modern C++ – aktuell zu C++17
Schlagwörter
Programmieren, Qt, C++ 11 14 17, guter clean Code, OOP, objektorientierte Programmierung, Standardbibliothek, C++-Programmierung, GUI-Entwicklung, Hand-Buch Bücher lernen Grundlagen Kurse Tipps Workshops Tutorials Wissen Training Ausbildung, C-plus-plus, Software-Entwicklung, Code
Inhaltsverzeichnis
Vorwort ... 23 TEIL 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 ... 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 ... 220 10.  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 ... 233 11.  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 ... 249 TEIL II  Objektorientierte Programmierung und mehr ... 251 12.  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 ... 294 13.  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« ... 324 14.  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 ... 346 15.  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 ... 376 16.  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 ... 411 17.  Guter Code, 4. Dan: Sicherheit, Qualität und Nachhaltigkeit ... 415        17.1 ... Die Nuller-Regel ... 415        17.2 ... RAII -- Resource Acquisition Is Initialization ... 420 18.  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 ... 456 19.  Guter Code, 5. Dan: Klassisches objektorientiertes Design ... 459        19.1 ... Objekte in C++ ... 461        19.2 ... Objektorientiert designen ... 462 TEIL III  Fortgeschrittene Themen ... 481 20.  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 ... 514 21.  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 ... 526 22.  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 ... 535 23.  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 ... 580 TEIL IV  Die Standardbibliothek ... 591 24.  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<>« ... 711 25.  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 ... 741 26.  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 ... 758 27.  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 ... 801 28.  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 ... 869 29.  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.
Höhe
240 mm
Breite
16.8 cm

Hersteller: Rheinwerk Verlag GmbH, Rheinwerkallee 4, Bonn, Deutschland, 53229, service@rheinwerk-verlag.de

Warnhinweise und Sicherheitsinformationen

Informationen nach EU Data Act

-.-
Leider noch keine Bewertungen
Leider noch keine Bewertungen
Schreib die erste Bewertung für dieses Produkt!
Wenn du eine Bewertung für dieses Produkt schreibst, hilfst du allen Kund:innen, die noch überlegen, ob sie das Produkt kaufen wollen. Vielen Dank, dass du mitmachst!