C++ programmieren: C++ lernen – professionell anwenden – Lösungen nutzen
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
München
Hanser
[2023]
|
Ausgabe: | 7., überarbeitete Auflage |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Auf dem Umschlag: "Aktuell zu C++23" |
Beschreibung: | 1015 Seiten Diagramme 25 cm |
ISBN: | 9783446476899 344647689X |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV049104264 | ||
003 | DE-604 | ||
005 | 20240531 | ||
007 | t | ||
008 | 230818s2023 gw |||| |||| 00||| ger d | ||
015 | |a 23,N20 |2 dnb | ||
016 | 7 | |a 1288939892 |2 DE-101 | |
020 | |a 9783446476899 |c : circa EUR 49.99 (DE), circa EUR 51.40 (AT) |9 978-3-446-47689-9 | ||
020 | |a 344647689X |9 3-446-47689-X | ||
024 | 3 | |a 9783446476899 | |
035 | |a (OCoLC)1401183727 | ||
035 | |a (DE-599)DNB1288939892 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BY | ||
049 | |a DE-210 |a DE-1050 |a DE-91G |a DE-Aug4 |a DE-12 |a DE-523 |a DE-739 |a DE-703 |a DE-20 |a DE-2070s | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a ST 601 |0 (DE-625)143682: |2 rvk | ||
084 | |8 1\p |a 004 |2 23sdnb | ||
084 | |a DAT 358 |2 stub | ||
100 | 1 | |a Breymann, Ulrich |d 1949- |e Verfasser |0 (DE-588)121409740 |4 aut | |
245 | 1 | 0 | |a C++ programmieren |b C++ lernen – professionell anwenden – Lösungen nutzen |c Ulrich Breymann |
246 | 1 | 3 | |a C ++ programmieren |
250 | |a 7., überarbeitete Auflage | ||
264 | 1 | |a München |b Hanser |c [2023] | |
264 | 4 | |c © 2023 | |
300 | |a 1015 Seiten |b Diagramme |c 25 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Auf dem Umschlag: "Aktuell zu C++23" | ||
650 | 0 | 7 | |a C++14 |0 (DE-588)1056920483 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++17 |0 (DE-588)1147325278 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++23 |0 (DE-588)1317339894 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
653 | |a C++23 | ||
653 | |a Programmiersprache | ||
653 | |a Programmierung | ||
653 | |a FBITPRCC: C/C++ | ||
653 | |a INF2023 | ||
689 | 0 | 0 | |a C++ |0 (DE-588)4193909-8 |D s |
689 | 0 | 1 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a C++23 |0 (DE-588)1317339894 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a C++14 |0 (DE-588)1056920483 |D s |
689 | 2 | |5 DE-604 | |
689 | 3 | 0 | |a C++17 |0 (DE-588)1147325278 |D s |
689 | 3 | |5 DE-604 | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-3-446-47846-6 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, EPUB |z 978-3-446-47964-7 |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034365736&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a vlb |d 20230510 |q DE-101 |u https://d-nb.info/provenance/plan#vlb | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-034365736 |
Datensatz im Suchindex
_version_ | 1813064290079342592 |
---|---|
adam_text |
Inhalt Vorwort. 23 Teil I: 1 Einführung in C++. 25 Es geht los!. 27 1.1 Historisches. 27 1.2 Arten der Programmierung. 28 1.3 Werkzeuge zum Programmieren. 29 1.4 Das erste Programm. 30 1.5 Integrierte Entwicklungsumgebung. 36 1.6 Einfache Datentypen und Operatoren. 39 1.6.1 Ausdruck. 39 1.6.2 Regeln für Namen. 39 1.6.3 Ganze Zahlen. 40 1.6.4 Reelle
Zahlen. 48 1.6.5 Konstanten. 52 1.6.6 Zeichen. 54 1.6.7 Logischer Datentyp bool. 57 1.6.8 Regeln zum Bilden von Ausdrücken. 58 1.6.9 Standard-Typumwandlungen. 59 1.7 Gültigkeitsbereich und Sichtbarkeit. 61 Namespace std. . 63 1.8 Kontrollstrukturen. 64 1.7.1
6 Inhalt Inhalt 1.9 2.2.9 Reihenfolge der Auswertung von Argumenten. 136 1.8.1 Anweisungen. 64 1.8.2 Sequenz (Reihung). 65 1.8.3 Auswahl (Selektion, Verzweigung). 66 1.8.4 Fallunterscheidungen mit switch. 71 2.3.1 2.3.2 #include. 137 #define, #if, #ifdef, #ifndef, #elif, #else, #endif, #elifdef, #elifndef. 137 1.8.5 Wiederholungen. 74 2.3.3 Vermeiden mehrfacher Inkludierung. 138 1.8.6 Kontrolle mit break und continue. 2.3.4 has_include. 140 1.8.7 goto. 84 2.3 82 Präprozessordirektiven. 136 2.3.5 Textersetzung mit
#define. 140 Selbst definierte und zusammengesetzte Datentypen. 85 2.3.6 Umwandlung von Parametern in Zeichenketten. 142 1.9.1 Aufzählungstypen. 85 2.3.7 Verifizieren logischer Annahmen zur Laufzeit. 143 1.9.2 Strukturen. 88 2.3.8 Verifizieren logischer Annahmenzur Compilationszeit. 143 Fehler-und Warnmeldungen. 144 Fehler ohne Programmabbruch lokalisieren. 144 1.9.3 Der C++-Standardtyp vector. 89 2.3.9 1.9.4 Der C++-Standardtyp array. 95 2.3.10 1.9.5 Zeichenketten: der C++-Standardtyp string. 95 1.9.6 Container und Schleifen. 98 2.4.1 Projekt: Mehrere cpp-Dateien bilden ein Programm. 145 1.9.7 Typermittlung mit auto. 100 2.4.2 Projekt in
der IDE anlegen. 147 1.9.8 Deklaration einer strukturierten Bindung mit auto. 102 2.4.3 Übersetzungseinheit, Deklaration, Definition. 148 1.9.9 Bitfeld und Union. 103 2.4.4 Dateiübergreifende Gültigkeit und Sichtbarkeit. 150 1.10 Einfache Ein-und Ausgabe. 104 2.4 2.5 Modulare Programmgestaltung. 145 Namensräume. 151 2.5.1 Gültigkeitsbereich auf Datei beschränken. 154 1.10.1 Standardein-und-ausgabe . 104 1.10.2 Ein- und Ausgabe mit Dateien. 108 2.6 inline-Funktionen und-Variablen . 155 1.11 Guter Programmierstil. 113 2.7 constexpr-
Funktionen. 156 2.8 Rückgabetyp auto. 159 2.9 Funktions-Templates. 161 2.7.1 2 Programmstrukturierung. 115 2.1 Funktionen. 116 2.2 2.1.1 Aufbau und Prototypen. 116 2.1.2 nodiscard. 118 2.1.3 Gültigkeitsbereiche und Sichtbarkeit in Funktionen. 119 2.1.4 Lokale static-Variable: Funktion mit Gedächtnis. 120 Berechnung zur Compilationszeit mit consteval. 158 2.9.1 Spezialisierung von Templates. 163 2.9.2 Einbinden von Templates. 164 2.10 C++-Header. 167 2.11
Module. 169 Schnittstellen zum Datentransfer. 121 2.2.1 ÜbergabeperWert. 122 3 Objektorientierung 1. . 173 2.2.2 Übergabe per Referenz. 124 3.1 Datentyp und Objekt. 175 2.2.3 Gefahren bei der Rückgabe von Referenzen. 126 3.2 Abstrakter Datentyp. 175 2.2.4 Vorgegebene Parameterwerte und unterschiedliche Parameterzahl. 127 3.3 Klassen. 177 2.2.5 Überladen von Funktionen. 128 3.3.1 const-Objekte und Methoden. 180 2.2.6 Funktion main(). 130 3.3.2 inline-
Elementfunktionen. 181 2.2.7 Beispiel Taschenrechnersimulation. 130 2.2.8 Spezifikation von Funktionen. 136 3.4 Initialisierung und Konstruktoren. 182 3.4.1 Standardkonstruktor. 182 7
8 Inhalt Inhalt 3.5 Mehrdimensionales C-Array als Funktionsparameter. 248 Direkte Initialisierung der Attribute. 184 3.4.3 Allgemeine Konstruktoren. 184 4.8 Dynamisches 2D-Array. 251 3.4.4 Kopierkonstruktor. 187 4.9 Binäre Ein-/Ausgabe. 257 3.4.5 Typumwandlungskonstruktor. 190 4.10 Zeiger auf Funktionen. 260 3.4.6 Konstruktor und mehr vorgebenoder verbieten. 191 4.11 Typumwandlungen für Zeiger. 264 3.4.7 Einheitliche Initialisierung und Sequenzkonstruktor. 192 4.12 Zeiger auf Elementfunktionen und -daten. 265 3.4.8 Delegierender Konstruktor. 194 4.13 Komplexe Deklarationen
lesen. 267 3.4.9 constexpr-Konstruktor und-Methoden. 195 Beispiel Rationale Zahlen. 199 3.5.1 Aufgabenstellung. 199 3.5.2 Entwurf. 200 3.5.3 Implementation. 203 3.6 Destruktoren. 208 3.7 Wie kommt man zu Klassenund Objekten? Ein Beispiel. 210 3.8 4.7.2 3.4.2 Gegenseitige Abhängigkeit von Klassen. 215 4.13.1 Lesbarkeit mit typedef und using verbessern. 267 4.14 Alternative zu rohen Zeigern, new und delete. 269 5 Objektorientierung 2.273 5.1 Eine String-Klasse. 273 5.1.1 friend-
Funktionen. 279 5.2 String-Ansicht (View). 280 5.3 Typbestimmung mit decltype und declval. 283 5.4 Klassenspezifische Daten und Funktionen. 286 5.4.1 Klassenspezifische Konstante. 290 4 Zeiger. 217 4.1 Zeiger und Adressen. . 218 4.2 C-Arrays. 222 5.5.1 Ein Stack-Template. 293 4.2.1 C-Array, std::size() und sizeof. 223 5.5.2 Stack mit statisch festgelegter Größe. 295 4.2.2 Initialisierung von C-Arrays. 224 5.5.3 Stack auf Basis verschiedener Container. 297 4.2.3
Zeigerarithmetik. 4.3 Indexoperator bei C-Arrays. 4.2.5 C-Array durchlaufen. 226 C-Zeichenketten. 227 4.5 Schleifen und C-Strings. 230 Dynamische Datenobjekte. 233 4.4.1 Freigeben dynamischer Objekte. 236 Zeiger und Funktionen. 239 4.5.1 Parameterübergabe mit Zeigern. 239 4.5.2 C-Array als Funktionsparameter. 240 4.5.3 const und Zeiger-Parameter. 242 4.5.4 Parameter des main-Programms. 243 4.5.5 Gefahren bei der Rückgabe von Zeigern. 243 4.6 this-Zeiger. 244 4.7 Mehrdimensionale
C-Arrays. 246 4.7.1 5.6 Statische mehrdimensionale C-Arrays. 246 Klassen-Templates. 293 Code Bloat bei der Instanziierung von Templates vermeiden. 298 5.6.1 225 4.2.4 4.3.1 4.4 224 5.5 extern-Template. 299 6 Vererbung. 301 6.1 Vererbung und Initialisierung. 306 6.2 Zugriffsschutz. 307 6.3 Typbeziehung zwischen Ober-und Unterklasse. 310 6.4 Oberklassen-Schnittstelle verwenden. 311 6.4.1 6.5 Konstruktor erben. 312 Überschreiben von Funktionen in abgeleiteten Klassen. 314 6.5.1 Virtuelle Funktionen. 316 6.5.2 Abstrakte
Klassen. 319 6.5.3 Virtueller Destruktor. 324 6.5.4 Vererbung verbieten. 327 6.5.5 Private virtuelle Funktionen. 328 6.6 Probleme der Modellierung mit Vererbung. 330 6.7 Mehrfachvererbung. 333 9
10 Inhalt Inhalt 6.8 Typumwandlung bei Vererbung. 340 8.8.1 Unterscheidung zwischen Heap- und Stack-Objekten. 408 6.9 Typinformationen zur Laufzeit. 342 8.8.2 Empfehlungen im Umgang mit new und delete. 410 6.10 Private-/Protected-Vererbung. 343 7 Fehlerbehandlung. 347 7.1 Ausnahmebehandlung. 349 7.1.1 Exception-Spezifikation in Deklarationen. 352 7.1.2 Exception-Hierarchie. 353 7.1.3 Besondere Fehlerbehandlungsfunktionen. 355 7.1.4 Arithmetische Fehler/Division durch 0. 356 7.2 Speicherbeschaffung mit new. 358 7.3 Exception-Sicherheit. .359 7.4 Fehlerbehandlung mit optional und
expected. 360 8.11 8.9.1 Stringliterale. 411 8.9.2 Benutzerdefinierte Literale. 412 Indexoperator für Matrizen. 414 8.10.1 Zweidimensionale Matrix als Vektor von Vektoren. 415 8.10.2 Zweidimensionale Matrix mit zusammenhängendem Speicher. 416 Zuweisung, Kopie und Vergleich bei Vererbung. 419 8.11.1 Polymorpher Vergleich. 420 8.11.2 Kopie mit clone()-Methode erzeugen. 421 9 Dateien und Ströme. 423 7.4.1 Fehlerbehandlung mit optional. 361 9.1 Eingabe. 425 Fehlerbehandlung mit expected. 363 9.2 Ausgabe. 427 7.4.3 Monadische
Operationen. 364 9.3 Formatierung mit std::format. 429 Überladen von Operatoren. 367 8.1 Rationale Zahlen - noch einmal. 369 8.1.1 Arithmetische Operatoren. 369 8.1.2 Ausgabeoperator«. 371 8.1.3 Gleichheitsoperator. 372 Eine Klasse für Vektoren. 374 8.2.1 Indexoperator [ ]. 377 8.2.2 Zuweisungsoperator =.379 8.2.3 Mathematische Vektoren. 382 8.2.4 Multiplikationsoperator. 383 8.3 Inkrement-Operator ++. 385 8.4
Typumwandlungsoperator. 389 8.5 Smart Pointer: Operatoren - und *. 390 8.5.1 Objekt als Funktion. 396 8.7 Spaceship-Operator = . 398 9.3.1 Syntax für Platzhalter. 429 9.3.2 Formatierung eigener Datentypen. 433 9.4 Formatierung mit Flags. 433 9.5 Formatierung mit Manipulatoren. 437 9.6 Fehlerbehandlung. 443 9.7 Typumwandlung von Dateiobjekten nach bool. 445 9.8 Arbeit mit Dateien. 446 9.8.1 Positionierung in Dateien. 446 9.8.2 Lesen und Schreiben in derselben Datei. 447 9.9 Umleitung auf
Strings.448 9.10 Formatierte Daten lesen. 449 9.10.1 9.11 Smart Pointer und die C++-Standardbibliothek. 395 8.6 8.8 8.10 Operatoren für Literale. 410 7.4.2 8 8.2 8.9 Eingabe benutzerdefinierter Typen. 449 Blockweise lesen und schreiben. 451 9.11.1 vector-Objekt binär lesen und schreiben. 451 9.11.2 array-Objekt binär lesen und schreiben. 453 9.11.3 Matrix binär lesen und schreiben. 454 8.7.1 Ordnungen in C++. 399 10 Die Standard Template Library(STL). 457 8.7.2 Automatische Erzeugung der Vergleichsoperatoren. 401 10.1 Container, Iteratoren, Algorithmen. 458 8.7.3 Klassenspezifische Sortierung. 402
10.2 Iteratoren im Detail. 463 8.7.4 Freie Funktionen statt Elementfunktionen. 403 10.3 Beispiel verkettete Liste. 465 new und delete überladen. 404 10.4 Ranges und Views. 469 11
12 Inhalt Inhalt Teil II: Fortgeschrittene Themen. 473 13.3.2 Fold-Expression mit Kommaoperator. 519 13.4 Klassen-Template mit variabler Stelligkeit. 520 11 Performance, Wert- und Referenzsemantik. 475 11.1 Performanceproblem Wertsemantik. 477 11.2 11.3 11.4 11.1.1 Auslassen der Kopie. 477 11.1.2 Temporäre Objekte bei der Zuweisung. 478 Referenzsemantik für R-Werte. 479 11.2.1 Kategorien von Ausdrücken. 479 11.2.2 Referenzen auf R-und L-Werte. 480 11.2.3 Auswertung von Referenzen auf R-Werte. 481 Abfrage von Eigenschaften. 525 13.5.3 Abfrage numerischer Eigenschaften. 527 13.5.4 Typumwandlungen. 527 13.5.5 Auswahl weiterer
Traits. 528 13.6 Concepts. 530 14 Optimierung durch Referenzsemantik für R-Werte. 484 14.1 Elemente regulärer Ausdrücke. 536 Reguläre Ausdrücke. 535 Greedy oder lazy?. 538 11.3.1 Bewegungskonstruktor. 487 11.3.2 Bewegender Zuweisungsoperator. 488 14.2 Interaktive Auswertung. 540 Die move()-Funktion. 489 14.3 Auszug der regex-Schnittstelle. 543 move() und Initialisierung der Attribute. 490 14.4 Verarbeitung von \n. 544 Referenzen auf R-Werte und Template-
Parameter. 491 14.5 Anwendungen. 546 11.5.1 11.6 13.5.2 11.2.4 Referenz-Qualifizierer. 482 11.4.1 11.5 13.5 Type Traits. 521 13.5.1 Wie funktionieren Type Traits? —ein Beispiel. 522 14.1.1 Auswertung von Template-Parametern — ein Überblick. 493 Ein effizienter Plusoperator. 493 11.6.1 Eliminieren auch des Bewegungskonstruktors.494 11.6.2 Kopien temporärer Objekte eliminieren. 495 15 Threads und Coroutinen.547 15.1 Zeit und Dauer. 548 15.2 Threads. 549 15.2.1 AutomatischjoinQ. 553 11.7 Rule of
three/five/zero. 496 12 Lambda-Funktionen. 501 15.3.1 Übergabe eines Funktors. 556 12.1 Eigenschaften. 502 15.3.2 Thread-Group. 558 15.3 Die Klasse jthread. 554 12.1.1 Äquivalenz zum Funktionszeiger. 503 12.1.2 Lambda-Funktion und Klasse. 504 15.4 Synchronisation kritischer Abschnitte. 559 15.4.1 Data Race erkennen. 562 12.2 Generische Lambda-Funktionen. 505 15.5 Thread-Steuerung: Pausieren, Fortsetzen, Beenden. 562 12.3 Parametererfassung mit [] . 507 15.6 Warten auf
Ereignisse. 566 13 Metaprogrammierung mit Templates.509 13.1 Grundlagen. 510 15.7 Atomare Veränderung von Variablen. 572 13.2 Variadic Templates: Templates mit variabler Parameterzahl. 512 13.2.1 13.3 15.8 Asynchrone verteilte Bearbeitung einer Aufgabe. 575 15.9 Thread-Sicherheit. 578 15.10 Coroutinen. 579 Ablauf der Auswertung durch den Compiler. 513 13.2.2 Anzahl der Parameter. 514 16 13.2.3 Parameterexpansion. 515 16.1 Ereignisgesteuerte Programmierung. 586 Fold-Expressions. 516 16.2 GUI-Programmierung mit
Qt. 587 13.3.1 Weitere Varianten. 518 Grafische Benutzungsschnittstellen. 585 16.2.1 Meta-Objektsystem. 587 13
14 Inhalt Inhalt 16.2.2 Der Programmablauf. 588 19.5.1 Nur ein Makefile aufProjektebene. 663 16.2.3 Ereignis abfragen. 589 19.5.2 Rekursive Make-Aufrufe. 664 16.3 Signale, Slots und Widgets. 590 16.4 Dialog. 599 19.6 Erzeugen von Bibliotheken. 666 19.6.1 Statische Bibliotheksmodule. 666 16.5 Qt oder Standard-C++?. 602 19.6.2 Dynamische Bibliotheksmodule. 668 16.5.1 Threads. 602 19.7 Weitere Build-Tools. 671 16.5.2 Verzeichnisbaum durchwandern. 604
20 Unit-Test. 673 17 Internet-Anbindung. 607 20.1 Werkzeuge. 674 17.1 Protokolle. 608 20.2 Boost Unit Test Framework. 675 17.2 Adressen. 608 20.2.1 Fixture. 677 17.3 Socket. 611 20.2.2 Testprotokoll und Log-Level. 677 Bidirektionale Kommunikation. 614 20.2.3 Prüf-Makros. 678 17.3.2 UDP-Sockets. 616 20.2.4 Kommandozeilen-
Optionen. 683 Atomuhr mit UDP abfragen. 618 20.3 Test Driven Development. 684 17.3.1 17.3.3 17.4 HTTP. 620 17.4.1 Verbindung mit GET. 621 17.4.2 Verbindung mit POST. 626 Tell IV: Das C++-Rezeptbuch: Tipps und Lösungen für typische Aufgaben. .685 17.5 Mini-Webserver. 627 17.6 OpenAI-Schnittstellen zu ChatGPT und DALLE 2. 635 17.6.1 ChatGPT. 636 17.6.2 DALL E 2. 638 18 Datenbankanbindung. 639 18.1 C++-Interface. 640 18.2
Anwendungsbeispiel. 643 Teil III: Ausgewählte Methoden und Werkzeuge der Softwareentwicklung. 649 19 Effiziente Programmerzeugung mit make. 651 19.1 Wirkungsweise. 652 19.2 Variablen und Muster. 654 19.3 Universelles Makefile für einfache Projekte. 656 19.4 Automatische Ermittlung von Abhängigkeiten. 657 19.4.1 Makefiles für verschiedene Betriebssysteme und Compiler. 659 19.4.2 Getrennte Verzeichnisse: src, obj, bin. 660 19.5 Makefile für Verzeichnisbäume. 661 21 Sichere Programmentwicklung. 687 21.1 Regeln zum Design von Methoden. 688 21.2 Defensive Programmierung. 689 21.2.1 double- und float-Werte richtig
vergleichen. 690 21.2.2 const und constexpr verwenden. 691 21.2.3 Anweisungen nach for/if/while einklammern. 691 21.2.4 int und unsigned/size_t nicht mischen . 692 21.2.5 size_t oder auto statt unsigned int verwenden. 692 21.2.6 Postfix++ mit Präfix++ implementieren. 692 21.2.7 Ein Destruktor darf keine Exception werfen. 693 21.2.8 explicit-Typumwandlungsoperator bevorzugen. 693 21.2.9 explicit-Konstruktor für eine Typumwandlung bevorzugen. 693 21.2.10 Leere Standardkonstruktoren vermeiden. 693 21.2.11 Mit override Schreibfehler reduzieren. 694 21.2.12 Kopieren und Zuweisung verbieten. 694 21.2.13 Vererbung verbieten. 695 21.2.14 Überschreiben einer virtuellen Methode verhindern. 695 21.2.15 »Rule of zero« beachten. 695 15
16 Inhalt Inhalt 21.2.16 One Definition Rule. 695 23.2.2 Ersetzungen in einer Datei. 726 21.2.17 Defensiv Objekte löschen. 696 23.2.3 Lines of Code (LOC) ermitteln. 728 21.2.18 Hängende Referenzen vermeiden. 696 23.2.4 Zeilen, Wörter und Zeichen einer Datei zählen. 729 21.2.19 Speicherbeschaffung und-freigabe kapseln. 696 23.2.5 CSV-Datei lesen. 730 Programmierrichtlinien einhalten. 696 23.2.6 Kreuzreferenzliste. 731 21.2.20 21.3 Exception-sichere Beschaffung von Ressourcen. 696 21.3.1 Sichere Verwendung von unique_ptr und shared_ptr. 697 23.3.1 Vereinfachungen.733 21.3.2 So vermeiden Sie new und delete!. 697 23.3.2 Folge mit gleichen
Werten initialisieren. 735 21.3.3 shared_ptr für C-Arrays korrekt verwenden. 698 23.3.3 Folge mit Werten eines Generators initialisieren. 736 21.3.4 unique_ptr für C-Arrays korrekt verwenden. 699 23.3.4 Folge mit fortlaufenden Werten initialisieren. 737 21.3.5 Exception-sichere Funktion. 700 23.3.5 Summe und Produkt. 21.3.6 Exception-sicherer Konstruktor. 701 23.3.6 Mittelwert und Standardabweichung. 738 Exception-sichere Zuweisung. 701 23.3.7 Skalarprodukt. 739 Empfehlungen zur Thread-Programmierung. 702 23.3.8 Folge der Teilsummen oder -produkte. 740 21.4.1 Warten auf die Freigabe von Ressourcen. 702 23.3.9 Folge der Differenzen. 742 21.4.2 Deadlock-
Vermeidung. 702 23.3.10 Kleinstes und größtes Element finden. 743 21.4.3 notify_all oder notify_one?. 703 23.3.11 21.4.4 Performance mit Threads verbessern?. 704 23.3.12 Elemente verwürfeln. 746 21.3.7 21.4 23.3 Operationen auf Folgen. 733 737 Eiementerotieren. 744 23.3.13 Dubletten entfernen. 746 22 Von der UML nach C++. 705 23.3.14 Reihenfolge umdrehen. 22.1 Vererbung. 706 23.3.15 Stichprobe. 749 22.2 Interface anbieten und nutzen. 706 23.3.16 Anzahl der Elemente, die einer Bedingung
genügen. 750 22.3 Assoziation. 708 23.3.17 Gilt ein Prädikat für alle, kein oder wenigstens ein Element einer Folge?. 751 22.3.1 Aggregation. 712 23.3.18 Permutationen. 752 22.3.2 Komposition. 712 23.3.19 Lexikografischer Vergleich. 755 23 Algorithmen für verschiedene Aufgaben. 713 23.1 Algorithmen mit Strings. 714 23.2 23.1.1 String splitten. 714 23.1.2 String in Zahl umwandeln. 715 23.1.3 Zahlin String umwandeln. 718 23.1.4 Strings sprachlich richtig sortieren. 718 23.1.5 Umwandlung in Klein- bzw. Großschreibung. 720 23.1.6 Strings sprachlich richtig
vergleichen. 722 23.1.7 Von der Groß-/Kleinschreibung unabhängiger Zeichenvergleich. 722 23.1.8 Von der Groß-/Kleinschreibung unabhängige Suche. 723 Textverarbeitung. 724 23.2.1 Datei durchsuchen. 724 749 23.4 Sortieren und Verwandtes. 757 23.5 23.4.1 Partitionieren. 757 23.4.2 Sortieren. 760 23.4.3 Stabiles Sortieren. 761 23.4.4 Partielles Sortieren. 762 23.4.5 Das n.-größte oder n.-kleinste Element finden. 764 23.4.6 Verschmelzen (merge). 765 Suchen und Finden. 767 23.5.1 Element finden. 767
23.5.2 Element einer Menge inder Folge finden. 768 23.5.3 Teilfolge finden. 770 23.5.4 Teilfolge mit speziellemAlgorithmus finden. 771 17
18 Inhalt Inhalt 23.5.5 Bestimmte benachbarte Elemente finden. 772 24.7 Verzeichnis anzeigen. 823 23.5.6 Bestimmte aufeinanderfolgende Werte finden. 773 24.8 Verzeichnisbaum anzeigen. 824 23.5.7 Binäre Suche. 774 23.6 Mengenoperationen auf sortierten Strukturen. 777 Teil V: Die C++-Standardbibliothek.825 23.6.1 Teilmengenrelation. 778 23.6.2 Vereinigung. 779 25 Aufbau und Übersicht. 827 23.6.3 Schnittmenge. 779 25.1 Auslassungen. 830 23.6.4 Differenz . 780 25.2 Beispiele des Buchs und
dieC++-Standardbibliothek. 831 26 Hilfsfunktionen und -klassen. 833 26.1 Unterstützung der Referenzsemantik für R-Werte. 833 26.2 Paare. 835 26.3 Tupel. 837 26.4 bitset. 839 26.5 Indexfolgen. 842 26.6 variant statt union. 843 23.6.5 Symmetrische Differenz. 781 23.7 Heap-Algorithmen. 782 23.8 Vergleich von Containern auch ungleichenTyps. 786 23.9 23.8.1 Unterschiedliche Elemente finden. 786 23.8.2 Prüfung auf gleiche Inhalte. 788 Rechnen mit
komplexen Zahlen: Der C++-Standardtyp complex. 789 23.10 Vermischtes. 791 23.10.1 Erkennung eines Datums. 791 23.10.2 Erkennung einer IPv4-Adresse. 793 26.7 Funktionsobjekte. 844 26.7.1 Arithmetische, vergleichendeund logische Operationen. 844 23.10.3 Erzeugen von Zufallszahlen. 794 26.7.2 Binden von Argumentwerten. 845 23.10.4 for_each — auf jedem Element eine Funktion ausführen. 799 26.7.3 Funktionen in Objekte umwandeln. 846 23.10.5 Verschiedene Möglichkeiten, Container-Bereiche zu kopieren. 800 26.8 Templates für rationale Zahlen. 848 26.9 Hüllklasse für Referenzen. 850 23.10.8 Ersetzen und Varianten. 806 27
Container. 851 23.10.9 Elemente herausfiltern. 807 27.1 Gemeinsame Eigenschaften. 853 23.10.6 Vertauschen von Elementen, Bereichen und Containern. 803 23.10.7 Eiementetransformieren. 804 23.10.10 Grenzwerte von Zahltypen. 809 27.1.1 Reversible Container. 855 23.10.11 Minimum und Maximum. 810 27.1.2 Initialisierungsliste . . 856 23.10.12 Wert begrenzen. 812 27.1.3 Konstruktion an Ort und Stelle. 857 23.10.13 ggT, kgV und Mitte. 813 27.2 23.11 Parallelisierbare Algorithmen. 814 24 Datei- und
Verzeichnisoperationen. 815 24.1 Übersicht. 816 24.2 Pfadoperationen. 817 24.3 Datei oder Verzeichnis löschen. 818 24.4 Datei oder Verzeichnis kopieren. 820 24.5 Verzeichnis anlegen. 821 24.6 Datei oder Verzeichnis umbenennen. 822 Sequenzen. 858 27.2.1 vector. 859 27.2.2 vector bool . 860 27.2.3 array. 861 27.2.4 list. 864 27.2.5
deque. 867 27.3 Container-Adapter. 868 27.3.1 stack. 868 27.3.2 queue. 870 27.3.3 priority_queue. 871 19
20 Inhalt Inhalt 27.4 Assoziative Container. 873 27.5 33 Ausgewählte C-Header. 951 27.4.1 Sortierte assoziative Container. 875 33.1 cassert . 951 27.4.2 Hash-Container. 882 33.2 cctype . 952 Sicht auf Container (span). 889 28 Iteratoren.891 28.1 Iterator-Kategorien. 892 28.1.1 Anwendung von Traits. 894 28.2 Abstand und Bewegen. 897 28.3 Zugriff auf Anfang und Ende. 898 33.3 cmath
. 953 33.4 cstddef . 954 33.5 cstdlib . 954 33.6 cstring . 955 33.7 ctime . 957 A Anhang.959 Reverse-Iteratoren. 899 A.1 ASCII-Tabelle. 959 28.4 Insert-Iteratoren. 900 A.2 C++-Schlüsselwörter. 961 28.5 Stream-Iteratoren. 902 A.3 28.3.1 29
Algorithmen. 905 29.1 Algorithmen mit Prädikat. 906 29.2 Übersicht. 907 30 Nationale Besonderheiten. 911 30.1 Sprachumgebung festlegen und ändern. 912 30.1.1 Compilerbefehle. 962 A.3.1 Optimierung. 963 A.4 Rangfolge der Operatoren. 963 A.5 C++-Attribute für den Compiler. 965 A.6 Lösungen zu den Übungsaufgaben. 966 A.7 Änderungen in der 7. Auflage. 976 Glossar. 977 Die locale-
Funktionen. 914 30.2 Zeichensätze und-Codierung. 915 30.3 Zeichenklassifizierung und -Umwandlung. 919 30.4 Kategorien. 920 30.4.1 collate. 920 30.4.2 ctype. 921 30.4.3 numeric. 923 30.4.4 monetary. 924 30.4.5 messages. 927 30.5 Konstruktion eigener Facetten. 928 31 String .931 31.1 string-View für String-Literale. 940 32
Speichermanagement. 943 32.1 unique_ptr. 943 32.2 shared_ptr. 946 32.3 weak_ptr. 948 32.4 new mit Speicherortangabe. 949 Literaturverzeichnis. 987 Register. 991 21 |
adam_txt |
Inhalt Vorwort. 23 Teil I: 1 Einführung in C++. 25 Es geht los!. 27 1.1 Historisches. 27 1.2 Arten der Programmierung. 28 1.3 Werkzeuge zum Programmieren. 29 1.4 Das erste Programm. 30 1.5 Integrierte Entwicklungsumgebung. 36 1.6 Einfache Datentypen und Operatoren. 39 1.6.1 Ausdruck. 39 1.6.2 Regeln für Namen. 39 1.6.3 Ganze Zahlen. 40 1.6.4 Reelle
Zahlen. 48 1.6.5 Konstanten. 52 1.6.6 Zeichen. 54 1.6.7 Logischer Datentyp bool. 57 1.6.8 Regeln zum Bilden von Ausdrücken. 58 1.6.9 Standard-Typumwandlungen. 59 1.7 Gültigkeitsbereich und Sichtbarkeit. 61 Namespace std. . 63 1.8 Kontrollstrukturen. 64 1.7.1
6 Inhalt Inhalt 1.9 2.2.9 Reihenfolge der Auswertung von Argumenten. 136 1.8.1 Anweisungen. 64 1.8.2 Sequenz (Reihung). 65 1.8.3 Auswahl (Selektion, Verzweigung). 66 1.8.4 Fallunterscheidungen mit switch. 71 2.3.1 2.3.2 #include. 137 #define, #if, #ifdef, #ifndef, #elif, #else, #endif, #elifdef, #elifndef. 137 1.8.5 Wiederholungen. 74 2.3.3 Vermeiden mehrfacher Inkludierung. 138 1.8.6 Kontrolle mit break und continue. 2.3.4 has_include. 140 1.8.7 goto. 84 2.3 82 Präprozessordirektiven. 136 2.3.5 Textersetzung mit
#define. 140 Selbst definierte und zusammengesetzte Datentypen. 85 2.3.6 Umwandlung von Parametern in Zeichenketten. 142 1.9.1 Aufzählungstypen. 85 2.3.7 Verifizieren logischer Annahmen zur Laufzeit. 143 1.9.2 Strukturen. 88 2.3.8 Verifizieren logischer Annahmenzur Compilationszeit. 143 Fehler-und Warnmeldungen. 144 Fehler ohne Programmabbruch lokalisieren. 144 1.9.3 Der C++-Standardtyp vector. 89 2.3.9 1.9.4 Der C++-Standardtyp array. 95 2.3.10 1.9.5 Zeichenketten: der C++-Standardtyp string. 95 1.9.6 Container und Schleifen. 98 2.4.1 Projekt: Mehrere cpp-Dateien bilden ein Programm. 145 1.9.7 Typermittlung mit auto. 100 2.4.2 Projekt in
der IDE anlegen. 147 1.9.8 Deklaration einer strukturierten Bindung mit auto. 102 2.4.3 Übersetzungseinheit, Deklaration, Definition. 148 1.9.9 Bitfeld und Union. 103 2.4.4 Dateiübergreifende Gültigkeit und Sichtbarkeit. 150 1.10 Einfache Ein-und Ausgabe. 104 2.4 2.5 Modulare Programmgestaltung. 145 Namensräume. 151 2.5.1 Gültigkeitsbereich auf Datei beschränken. 154 1.10.1 Standardein-und-ausgabe . 104 1.10.2 Ein- und Ausgabe mit Dateien. 108 2.6 inline-Funktionen und-Variablen . 155 1.11 Guter Programmierstil. 113 2.7 constexpr-
Funktionen. 156 2.8 Rückgabetyp auto. 159 2.9 Funktions-Templates. 161 2.7.1 2 Programmstrukturierung. 115 2.1 Funktionen. 116 2.2 2.1.1 Aufbau und Prototypen. 116 2.1.2 nodiscard. 118 2.1.3 Gültigkeitsbereiche und Sichtbarkeit in Funktionen. 119 2.1.4 Lokale static-Variable: Funktion mit Gedächtnis. 120 Berechnung zur Compilationszeit mit consteval. 158 2.9.1 Spezialisierung von Templates. 163 2.9.2 Einbinden von Templates. 164 2.10 C++-Header. 167 2.11
Module. 169 Schnittstellen zum Datentransfer. 121 2.2.1 ÜbergabeperWert. 122 3 Objektorientierung 1. . 173 2.2.2 Übergabe per Referenz. 124 3.1 Datentyp und Objekt. 175 2.2.3 Gefahren bei der Rückgabe von Referenzen. 126 3.2 Abstrakter Datentyp. 175 2.2.4 Vorgegebene Parameterwerte und unterschiedliche Parameterzahl. 127 3.3 Klassen. 177 2.2.5 Überladen von Funktionen. 128 3.3.1 const-Objekte und Methoden. 180 2.2.6 Funktion main(). 130 3.3.2 inline-
Elementfunktionen. 181 2.2.7 Beispiel Taschenrechnersimulation. 130 2.2.8 Spezifikation von Funktionen. 136 3.4 Initialisierung und Konstruktoren. 182 3.4.1 Standardkonstruktor. 182 7
8 Inhalt Inhalt 3.5 Mehrdimensionales C-Array als Funktionsparameter. 248 Direkte Initialisierung der Attribute. 184 3.4.3 Allgemeine Konstruktoren. 184 4.8 Dynamisches 2D-Array. 251 3.4.4 Kopierkonstruktor. 187 4.9 Binäre Ein-/Ausgabe. 257 3.4.5 Typumwandlungskonstruktor. 190 4.10 Zeiger auf Funktionen. 260 3.4.6 Konstruktor und mehr vorgebenoder verbieten. 191 4.11 Typumwandlungen für Zeiger. 264 3.4.7 Einheitliche Initialisierung und Sequenzkonstruktor. 192 4.12 Zeiger auf Elementfunktionen und -daten. 265 3.4.8 Delegierender Konstruktor. 194 4.13 Komplexe Deklarationen
lesen. 267 3.4.9 constexpr-Konstruktor und-Methoden. 195 Beispiel Rationale Zahlen. 199 3.5.1 Aufgabenstellung. 199 3.5.2 Entwurf. 200 3.5.3 Implementation. 203 3.6 Destruktoren. 208 3.7 Wie kommt man zu Klassenund Objekten? Ein Beispiel. 210 3.8 4.7.2 3.4.2 Gegenseitige Abhängigkeit von Klassen. 215 4.13.1 Lesbarkeit mit typedef und using verbessern. 267 4.14 Alternative zu rohen Zeigern, new und delete. 269 5 Objektorientierung 2.273 5.1 Eine String-Klasse. 273 5.1.1 friend-
Funktionen. 279 5.2 String-Ansicht (View). 280 5.3 Typbestimmung mit decltype und declval. 283 5.4 Klassenspezifische Daten und Funktionen. 286 5.4.1 Klassenspezifische Konstante. 290 4 Zeiger. 217 4.1 Zeiger und Adressen. . 218 4.2 C-Arrays. 222 5.5.1 Ein Stack-Template. 293 4.2.1 C-Array, std::size() und sizeof. 223 5.5.2 Stack mit statisch festgelegter Größe. 295 4.2.2 Initialisierung von C-Arrays. 224 5.5.3 Stack auf Basis verschiedener Container. 297 4.2.3
Zeigerarithmetik. 4.3 Indexoperator bei C-Arrays. 4.2.5 C-Array durchlaufen. 226 C-Zeichenketten. 227 4.5 Schleifen und C-Strings. 230 Dynamische Datenobjekte. 233 4.4.1 Freigeben dynamischer Objekte. 236 Zeiger und Funktionen. 239 4.5.1 Parameterübergabe mit Zeigern. 239 4.5.2 C-Array als Funktionsparameter. 240 4.5.3 const und Zeiger-Parameter. 242 4.5.4 Parameter des main-Programms. 243 4.5.5 Gefahren bei der Rückgabe von Zeigern. 243 4.6 this-Zeiger. 244 4.7 Mehrdimensionale
C-Arrays. 246 4.7.1 5.6 Statische mehrdimensionale C-Arrays. 246 Klassen-Templates. 293 Code Bloat bei der Instanziierung von Templates vermeiden. 298 5.6.1 225 4.2.4 4.3.1 4.4 224 5.5 extern-Template. 299 6 Vererbung. 301 6.1 Vererbung und Initialisierung. 306 6.2 Zugriffsschutz. 307 6.3 Typbeziehung zwischen Ober-und Unterklasse. 310 6.4 Oberklassen-Schnittstelle verwenden. 311 6.4.1 6.5 Konstruktor erben. 312 Überschreiben von Funktionen in abgeleiteten Klassen. 314 6.5.1 Virtuelle Funktionen. 316 6.5.2 Abstrakte
Klassen. 319 6.5.3 Virtueller Destruktor. 324 6.5.4 Vererbung verbieten. 327 6.5.5 Private virtuelle Funktionen. 328 6.6 Probleme der Modellierung mit Vererbung. 330 6.7 Mehrfachvererbung. 333 9
10 Inhalt Inhalt 6.8 Typumwandlung bei Vererbung. 340 8.8.1 Unterscheidung zwischen Heap- und Stack-Objekten. 408 6.9 Typinformationen zur Laufzeit. 342 8.8.2 Empfehlungen im Umgang mit new und delete. 410 6.10 Private-/Protected-Vererbung. 343 7 Fehlerbehandlung. 347 7.1 Ausnahmebehandlung. 349 7.1.1 Exception-Spezifikation in Deklarationen. 352 7.1.2 Exception-Hierarchie. 353 7.1.3 Besondere Fehlerbehandlungsfunktionen. 355 7.1.4 Arithmetische Fehler/Division durch 0. 356 7.2 Speicherbeschaffung mit new. 358 7.3 Exception-Sicherheit. .359 7.4 Fehlerbehandlung mit optional und
expected. 360 8.11 8.9.1 Stringliterale. 411 8.9.2 Benutzerdefinierte Literale. 412 Indexoperator für Matrizen. 414 8.10.1 Zweidimensionale Matrix als Vektor von Vektoren. 415 8.10.2 Zweidimensionale Matrix mit zusammenhängendem Speicher. 416 Zuweisung, Kopie und Vergleich bei Vererbung. 419 8.11.1 Polymorpher Vergleich. 420 8.11.2 Kopie mit clone()-Methode erzeugen. 421 9 Dateien und Ströme. 423 7.4.1 Fehlerbehandlung mit optional. 361 9.1 Eingabe. 425 Fehlerbehandlung mit expected. 363 9.2 Ausgabe. 427 7.4.3 Monadische
Operationen. 364 9.3 Formatierung mit std::format. 429 Überladen von Operatoren. 367 8.1 Rationale Zahlen - noch einmal. 369 8.1.1 Arithmetische Operatoren. 369 8.1.2 Ausgabeoperator«. 371 8.1.3 Gleichheitsoperator. 372 Eine Klasse für Vektoren. 374 8.2.1 Indexoperator [ ]. 377 8.2.2 Zuweisungsoperator =.379 8.2.3 Mathematische Vektoren. 382 8.2.4 Multiplikationsoperator. 383 8.3 Inkrement-Operator ++. 385 8.4
Typumwandlungsoperator. 389 8.5 Smart Pointer: Operatoren - und *. 390 8.5.1 Objekt als Funktion. 396 8.7 Spaceship-Operator = . 398 9.3.1 Syntax für Platzhalter. 429 9.3.2 Formatierung eigener Datentypen. 433 9.4 Formatierung mit Flags. 433 9.5 Formatierung mit Manipulatoren. 437 9.6 Fehlerbehandlung. 443 9.7 Typumwandlung von Dateiobjekten nach bool. 445 9.8 Arbeit mit Dateien. 446 9.8.1 Positionierung in Dateien. 446 9.8.2 Lesen und Schreiben in derselben Datei. 447 9.9 Umleitung auf
Strings.448 9.10 Formatierte Daten lesen. 449 9.10.1 9.11 Smart Pointer und die C++-Standardbibliothek. 395 8.6 8.8 8.10 Operatoren für Literale. 410 7.4.2 8 8.2 8.9 Eingabe benutzerdefinierter Typen. 449 Blockweise lesen und schreiben. 451 9.11.1 vector-Objekt binär lesen und schreiben. 451 9.11.2 array-Objekt binär lesen und schreiben. 453 9.11.3 Matrix binär lesen und schreiben. 454 8.7.1 Ordnungen in C++. 399 10 Die Standard Template Library(STL). 457 8.7.2 Automatische Erzeugung der Vergleichsoperatoren. 401 10.1 Container, Iteratoren, Algorithmen. 458 8.7.3 Klassenspezifische Sortierung. 402
10.2 Iteratoren im Detail. 463 8.7.4 Freie Funktionen statt Elementfunktionen. 403 10.3 Beispiel verkettete Liste. 465 new und delete überladen. 404 10.4 Ranges und Views. 469 11
12 Inhalt Inhalt Teil II: Fortgeschrittene Themen. 473 13.3.2 Fold-Expression mit Kommaoperator. 519 13.4 Klassen-Template mit variabler Stelligkeit. 520 11 Performance, Wert- und Referenzsemantik. 475 11.1 Performanceproblem Wertsemantik. 477 11.2 11.3 11.4 11.1.1 Auslassen der Kopie. 477 11.1.2 Temporäre Objekte bei der Zuweisung. 478 Referenzsemantik für R-Werte. 479 11.2.1 Kategorien von Ausdrücken. 479 11.2.2 Referenzen auf R-und L-Werte. 480 11.2.3 Auswertung von Referenzen auf R-Werte. 481 Abfrage von Eigenschaften. 525 13.5.3 Abfrage numerischer Eigenschaften. 527 13.5.4 Typumwandlungen. 527 13.5.5 Auswahl weiterer
Traits. 528 13.6 Concepts. 530 14 Optimierung durch Referenzsemantik für R-Werte. 484 14.1 Elemente regulärer Ausdrücke. 536 Reguläre Ausdrücke. 535 Greedy oder lazy?. 538 11.3.1 Bewegungskonstruktor. 487 11.3.2 Bewegender Zuweisungsoperator. 488 14.2 Interaktive Auswertung. 540 Die move()-Funktion. 489 14.3 Auszug der regex-Schnittstelle. 543 move() und Initialisierung der Attribute. 490 14.4 Verarbeitung von \n. 544 Referenzen auf R-Werte und Template-
Parameter. 491 14.5 Anwendungen. 546 11.5.1 11.6 13.5.2 11.2.4 Referenz-Qualifizierer. 482 11.4.1 11.5 13.5 Type Traits. 521 13.5.1 Wie funktionieren Type Traits? —ein Beispiel. 522 14.1.1 Auswertung von Template-Parametern — ein Überblick. 493 Ein effizienter Plusoperator. 493 11.6.1 Eliminieren auch des Bewegungskonstruktors.494 11.6.2 Kopien temporärer Objekte eliminieren. 495 15 Threads und Coroutinen.547 15.1 Zeit und Dauer. 548 15.2 Threads. 549 15.2.1 AutomatischjoinQ. 553 11.7 Rule of
three/five/zero. 496 12 Lambda-Funktionen. 501 15.3.1 Übergabe eines Funktors. 556 12.1 Eigenschaften. 502 15.3.2 Thread-Group. 558 15.3 Die Klasse jthread. 554 12.1.1 Äquivalenz zum Funktionszeiger. 503 12.1.2 Lambda-Funktion und Klasse. 504 15.4 Synchronisation kritischer Abschnitte. 559 15.4.1 Data Race erkennen. 562 12.2 Generische Lambda-Funktionen. 505 15.5 Thread-Steuerung: Pausieren, Fortsetzen, Beenden. 562 12.3 Parametererfassung mit [] . 507 15.6 Warten auf
Ereignisse. 566 13 Metaprogrammierung mit Templates.509 13.1 Grundlagen. 510 15.7 Atomare Veränderung von Variablen. 572 13.2 Variadic Templates: Templates mit variabler Parameterzahl. 512 13.2.1 13.3 15.8 Asynchrone verteilte Bearbeitung einer Aufgabe. 575 15.9 Thread-Sicherheit. 578 15.10 Coroutinen. 579 Ablauf der Auswertung durch den Compiler. 513 13.2.2 Anzahl der Parameter. 514 16 13.2.3 Parameterexpansion. 515 16.1 Ereignisgesteuerte Programmierung. 586 Fold-Expressions. 516 16.2 GUI-Programmierung mit
Qt. 587 13.3.1 Weitere Varianten. 518 Grafische Benutzungsschnittstellen. 585 16.2.1 Meta-Objektsystem. 587 13
14 Inhalt Inhalt 16.2.2 Der Programmablauf. 588 19.5.1 Nur ein Makefile aufProjektebene. 663 16.2.3 Ereignis abfragen. 589 19.5.2 Rekursive Make-Aufrufe. 664 16.3 Signale, Slots und Widgets. 590 16.4 Dialog. 599 19.6 Erzeugen von Bibliotheken. 666 19.6.1 Statische Bibliotheksmodule. 666 16.5 Qt oder Standard-C++?. 602 19.6.2 Dynamische Bibliotheksmodule. 668 16.5.1 Threads. 602 19.7 Weitere Build-Tools. 671 16.5.2 Verzeichnisbaum durchwandern. 604
20 Unit-Test. 673 17 Internet-Anbindung. 607 20.1 Werkzeuge. 674 17.1 Protokolle. 608 20.2 Boost Unit Test Framework. 675 17.2 Adressen. 608 20.2.1 Fixture. 677 17.3 Socket. 611 20.2.2 Testprotokoll und Log-Level. 677 Bidirektionale Kommunikation. 614 20.2.3 Prüf-Makros. 678 17.3.2 UDP-Sockets. 616 20.2.4 Kommandozeilen-
Optionen. 683 Atomuhr mit UDP abfragen. 618 20.3 Test Driven Development. 684 17.3.1 17.3.3 17.4 HTTP. 620 17.4.1 Verbindung mit GET. 621 17.4.2 Verbindung mit POST. 626 Tell IV: Das C++-Rezeptbuch: Tipps und Lösungen für typische Aufgaben. .685 17.5 Mini-Webserver. 627 17.6 OpenAI-Schnittstellen zu ChatGPT und DALLE 2. 635 17.6.1 ChatGPT. 636 17.6.2 DALL E 2. 638 18 Datenbankanbindung. 639 18.1 C++-Interface. 640 18.2
Anwendungsbeispiel. 643 Teil III: Ausgewählte Methoden und Werkzeuge der Softwareentwicklung. 649 19 Effiziente Programmerzeugung mit make. 651 19.1 Wirkungsweise. 652 19.2 Variablen und Muster. 654 19.3 Universelles Makefile für einfache Projekte. 656 19.4 Automatische Ermittlung von Abhängigkeiten. 657 19.4.1 Makefiles für verschiedene Betriebssysteme und Compiler. 659 19.4.2 Getrennte Verzeichnisse: src, obj, bin. 660 19.5 Makefile für Verzeichnisbäume. 661 21 Sichere Programmentwicklung. 687 21.1 Regeln zum Design von Methoden. 688 21.2 Defensive Programmierung. 689 21.2.1 double- und float-Werte richtig
vergleichen. 690 21.2.2 const und constexpr verwenden. 691 21.2.3 Anweisungen nach for/if/while einklammern. 691 21.2.4 int und unsigned/size_t nicht mischen . 692 21.2.5 size_t oder auto statt unsigned int verwenden. 692 21.2.6 Postfix++ mit Präfix++ implementieren. 692 21.2.7 Ein Destruktor darf keine Exception werfen. 693 21.2.8 explicit-Typumwandlungsoperator bevorzugen. 693 21.2.9 explicit-Konstruktor für eine Typumwandlung bevorzugen. 693 21.2.10 Leere Standardkonstruktoren vermeiden. 693 21.2.11 Mit override Schreibfehler reduzieren. 694 21.2.12 Kopieren und Zuweisung verbieten. 694 21.2.13 Vererbung verbieten. 695 21.2.14 Überschreiben einer virtuellen Methode verhindern. 695 21.2.15 »Rule of zero« beachten. 695 15
16 Inhalt Inhalt 21.2.16 One Definition Rule. 695 23.2.2 Ersetzungen in einer Datei. 726 21.2.17 Defensiv Objekte löschen. 696 23.2.3 Lines of Code (LOC) ermitteln. 728 21.2.18 Hängende Referenzen vermeiden. 696 23.2.4 Zeilen, Wörter und Zeichen einer Datei zählen. 729 21.2.19 Speicherbeschaffung und-freigabe kapseln. 696 23.2.5 CSV-Datei lesen. 730 Programmierrichtlinien einhalten. 696 23.2.6 Kreuzreferenzliste. 731 21.2.20 21.3 Exception-sichere Beschaffung von Ressourcen. 696 21.3.1 Sichere Verwendung von unique_ptr und shared_ptr. 697 23.3.1 Vereinfachungen.733 21.3.2 So vermeiden Sie new und delete!. 697 23.3.2 Folge mit gleichen
Werten initialisieren. 735 21.3.3 shared_ptr für C-Arrays korrekt verwenden. 698 23.3.3 Folge mit Werten eines Generators initialisieren. 736 21.3.4 unique_ptr für C-Arrays korrekt verwenden. 699 23.3.4 Folge mit fortlaufenden Werten initialisieren. 737 21.3.5 Exception-sichere Funktion. 700 23.3.5 Summe und Produkt. 21.3.6 Exception-sicherer Konstruktor. 701 23.3.6 Mittelwert und Standardabweichung. 738 Exception-sichere Zuweisung. 701 23.3.7 Skalarprodukt. 739 Empfehlungen zur Thread-Programmierung. 702 23.3.8 Folge der Teilsummen oder -produkte. 740 21.4.1 Warten auf die Freigabe von Ressourcen. 702 23.3.9 Folge der Differenzen. 742 21.4.2 Deadlock-
Vermeidung. 702 23.3.10 Kleinstes und größtes Element finden. 743 21.4.3 notify_all oder notify_one?. 703 23.3.11 21.4.4 Performance mit Threads verbessern?. 704 23.3.12 Elemente verwürfeln. 746 21.3.7 21.4 23.3 Operationen auf Folgen. 733 737 Eiementerotieren. 744 23.3.13 Dubletten entfernen. 746 22 Von der UML nach C++. 705 23.3.14 Reihenfolge umdrehen. 22.1 Vererbung. 706 23.3.15 Stichprobe. 749 22.2 Interface anbieten und nutzen. 706 23.3.16 Anzahl der Elemente, die einer Bedingung
genügen. 750 22.3 Assoziation. 708 23.3.17 Gilt ein Prädikat für alle, kein oder wenigstens ein Element einer Folge?. 751 22.3.1 Aggregation. 712 23.3.18 Permutationen. 752 22.3.2 Komposition. 712 23.3.19 Lexikografischer Vergleich. 755 23 Algorithmen für verschiedene Aufgaben. 713 23.1 Algorithmen mit Strings. 714 23.2 23.1.1 String splitten. 714 23.1.2 String in Zahl umwandeln. 715 23.1.3 Zahlin String umwandeln. 718 23.1.4 Strings sprachlich richtig sortieren. 718 23.1.5 Umwandlung in Klein- bzw. Großschreibung. 720 23.1.6 Strings sprachlich richtig
vergleichen. 722 23.1.7 Von der Groß-/Kleinschreibung unabhängiger Zeichenvergleich. 722 23.1.8 Von der Groß-/Kleinschreibung unabhängige Suche. 723 Textverarbeitung. 724 23.2.1 Datei durchsuchen. 724 749 23.4 Sortieren und Verwandtes. 757 23.5 23.4.1 Partitionieren. 757 23.4.2 Sortieren. 760 23.4.3 Stabiles Sortieren. 761 23.4.4 Partielles Sortieren. 762 23.4.5 Das n.-größte oder n.-kleinste Element finden. 764 23.4.6 Verschmelzen (merge). 765 Suchen und Finden. 767 23.5.1 Element finden. 767
23.5.2 Element einer Menge inder Folge finden. 768 23.5.3 Teilfolge finden. 770 23.5.4 Teilfolge mit speziellemAlgorithmus finden. 771 17
18 Inhalt Inhalt 23.5.5 Bestimmte benachbarte Elemente finden. 772 24.7 Verzeichnis anzeigen. 823 23.5.6 Bestimmte aufeinanderfolgende Werte finden. 773 24.8 Verzeichnisbaum anzeigen. 824 23.5.7 Binäre Suche. 774 23.6 Mengenoperationen auf sortierten Strukturen. 777 Teil V: Die C++-Standardbibliothek.825 23.6.1 Teilmengenrelation. 778 23.6.2 Vereinigung. 779 25 Aufbau und Übersicht. 827 23.6.3 Schnittmenge. 779 25.1 Auslassungen. 830 23.6.4 Differenz . 780 25.2 Beispiele des Buchs und
dieC++-Standardbibliothek. 831 26 Hilfsfunktionen und -klassen. 833 26.1 Unterstützung der Referenzsemantik für R-Werte. 833 26.2 Paare. 835 26.3 Tupel. 837 26.4 bitset. 839 26.5 Indexfolgen. 842 26.6 variant statt union. 843 23.6.5 Symmetrische Differenz. 781 23.7 Heap-Algorithmen. 782 23.8 Vergleich von Containern auch ungleichenTyps. 786 23.9 23.8.1 Unterschiedliche Elemente finden. 786 23.8.2 Prüfung auf gleiche Inhalte. 788 Rechnen mit
komplexen Zahlen: Der C++-Standardtyp complex. 789 23.10 Vermischtes. 791 23.10.1 Erkennung eines Datums. 791 23.10.2 Erkennung einer IPv4-Adresse. 793 26.7 Funktionsobjekte. 844 26.7.1 Arithmetische, vergleichendeund logische Operationen. 844 23.10.3 Erzeugen von Zufallszahlen. 794 26.7.2 Binden von Argumentwerten. 845 23.10.4 for_each — auf jedem Element eine Funktion ausführen. 799 26.7.3 Funktionen in Objekte umwandeln. 846 23.10.5 Verschiedene Möglichkeiten, Container-Bereiche zu kopieren. 800 26.8 Templates für rationale Zahlen. 848 26.9 Hüllklasse für Referenzen. 850 23.10.8 Ersetzen und Varianten. 806 27
Container. 851 23.10.9 Elemente herausfiltern. 807 27.1 Gemeinsame Eigenschaften. 853 23.10.6 Vertauschen von Elementen, Bereichen und Containern. 803 23.10.7 Eiementetransformieren. 804 23.10.10 Grenzwerte von Zahltypen. 809 27.1.1 Reversible Container. 855 23.10.11 Minimum und Maximum. 810 27.1.2 Initialisierungsliste . . 856 23.10.12 Wert begrenzen. 812 27.1.3 Konstruktion an Ort und Stelle. 857 23.10.13 ggT, kgV und Mitte. 813 27.2 23.11 Parallelisierbare Algorithmen. 814 24 Datei- und
Verzeichnisoperationen. 815 24.1 Übersicht. 816 24.2 Pfadoperationen. 817 24.3 Datei oder Verzeichnis löschen. 818 24.4 Datei oder Verzeichnis kopieren. 820 24.5 Verzeichnis anlegen. 821 24.6 Datei oder Verzeichnis umbenennen. 822 Sequenzen. 858 27.2.1 vector. 859 27.2.2 vector bool . 860 27.2.3 array. 861 27.2.4 list. 864 27.2.5
deque. 867 27.3 Container-Adapter. 868 27.3.1 stack. 868 27.3.2 queue. 870 27.3.3 priority_queue. 871 19
20 Inhalt Inhalt 27.4 Assoziative Container. 873 27.5 33 Ausgewählte C-Header. 951 27.4.1 Sortierte assoziative Container. 875 33.1 cassert . 951 27.4.2 Hash-Container. 882 33.2 cctype . 952 Sicht auf Container (span). 889 28 Iteratoren.891 28.1 Iterator-Kategorien. 892 28.1.1 Anwendung von Traits. 894 28.2 Abstand und Bewegen. 897 28.3 Zugriff auf Anfang und Ende. 898 33.3 cmath
. 953 33.4 cstddef . 954 33.5 cstdlib . 954 33.6 cstring . 955 33.7 ctime . 957 A Anhang.959 Reverse-Iteratoren. 899 A.1 ASCII-Tabelle. 959 28.4 Insert-Iteratoren. 900 A.2 C++-Schlüsselwörter. 961 28.5 Stream-Iteratoren. 902 A.3 28.3.1 29
Algorithmen. 905 29.1 Algorithmen mit Prädikat. 906 29.2 Übersicht. 907 30 Nationale Besonderheiten. 911 30.1 Sprachumgebung festlegen und ändern. 912 30.1.1 Compilerbefehle. 962 A.3.1 Optimierung. 963 A.4 Rangfolge der Operatoren. 963 A.5 C++-Attribute für den Compiler. 965 A.6 Lösungen zu den Übungsaufgaben. 966 A.7 Änderungen in der 7. Auflage. 976 Glossar. 977 Die locale-
Funktionen. 914 30.2 Zeichensätze und-Codierung. 915 30.3 Zeichenklassifizierung und -Umwandlung. 919 30.4 Kategorien. 920 30.4.1 collate. 920 30.4.2 ctype. 921 30.4.3 numeric. 923 30.4.4 monetary. 924 30.4.5 messages. 927 30.5 Konstruktion eigener Facetten. 928 31 String .931 31.1 string-View für String-Literale. 940 32
Speichermanagement. 943 32.1 unique_ptr. 943 32.2 shared_ptr. 946 32.3 weak_ptr. 948 32.4 new mit Speicherortangabe. 949 Literaturverzeichnis. 987 Register. 991 21 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Breymann, Ulrich 1949- |
author_GND | (DE-588)121409740 |
author_facet | Breymann, Ulrich 1949- |
author_role | aut |
author_sort | Breymann, Ulrich 1949- |
author_variant | u b ub |
building | Verbundindex |
bvnumber | BV049104264 |
classification_rvk | ST 250 ST 601 |
classification_tum | DAT 358 |
ctrlnum | (OCoLC)1401183727 (DE-599)DNB1288939892 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 7., überarbeitete Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a22000008c 4500</leader><controlfield tag="001">BV049104264</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240531</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">230818s2023 gw |||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">23,N20</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1288939892</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783446476899</subfield><subfield code="c">: circa EUR 49.99 (DE), circa EUR 51.40 (AT)</subfield><subfield code="9">978-3-446-47689-9</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">344647689X</subfield><subfield code="9">3-446-47689-X</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783446476899</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1401183727</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1288939892</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BY</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-210</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-2070s</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 601</subfield><subfield code="0">(DE-625)143682:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="8">1\p</subfield><subfield code="a">004</subfield><subfield code="2">23sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 358</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Breymann, Ulrich</subfield><subfield code="d">1949-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)121409740</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C++ programmieren</subfield><subfield code="b">C++ lernen – professionell anwenden – Lösungen nutzen</subfield><subfield code="c">Ulrich Breymann</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">C ++ programmieren</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">7., überarbeitete Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">München</subfield><subfield code="b">Hanser</subfield><subfield code="c">[2023]</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2023</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1015 Seiten</subfield><subfield code="b">Diagramme</subfield><subfield code="c">25 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Auf dem Umschlag: "Aktuell zu C++23"</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++14</subfield><subfield code="0">(DE-588)1056920483</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++17</subfield><subfield code="0">(DE-588)1147325278</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++23</subfield><subfield code="0">(DE-588)1317339894</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C++23</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Programmiersprache</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Programmierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">FBITPRCC: C/C++</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">INF2023</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">C++23</subfield><subfield code="0">(DE-588)1317339894</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">C++14</subfield><subfield code="0">(DE-588)1056920483</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="3" ind2="0"><subfield code="a">C++17</subfield><subfield code="0">(DE-588)1147325278</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-3-446-47846-6</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe, EPUB</subfield><subfield code="z">978-3-446-47964-7</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034365736&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">vlb</subfield><subfield code="d">20230510</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#vlb</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-034365736</subfield></datafield></record></collection> |
id | DE-604.BV049104264 |
illustrated | Not Illustrated |
index_date | 2024-07-03T22:33:31Z |
indexdate | 2024-10-16T10:00:47Z |
institution | BVB |
isbn | 9783446476899 344647689X |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-034365736 |
oclc_num | 1401183727 |
open_access_boolean | |
owner | DE-210 DE-1050 DE-91G DE-BY-TUM DE-Aug4 DE-12 DE-523 DE-739 DE-703 DE-20 DE-2070s |
owner_facet | DE-210 DE-1050 DE-91G DE-BY-TUM DE-Aug4 DE-12 DE-523 DE-739 DE-703 DE-20 DE-2070s |
physical | 1015 Seiten Diagramme 25 cm |
publishDate | 2023 |
publishDateSearch | 2023 |
publishDateSort | 2023 |
publisher | Hanser |
record_format | marc |
spelling | Breymann, Ulrich 1949- Verfasser (DE-588)121409740 aut C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen Ulrich Breymann C ++ programmieren 7., überarbeitete Auflage München Hanser [2023] © 2023 1015 Seiten Diagramme 25 cm txt rdacontent n rdamedia nc rdacarrier Auf dem Umschlag: "Aktuell zu C++23" C++14 (DE-588)1056920483 gnd rswk-swf C++17 (DE-588)1147325278 gnd rswk-swf C++23 (DE-588)1317339894 gnd rswk-swf Programmierung (DE-588)4076370-5 gnd rswk-swf C++ (DE-588)4193909-8 gnd rswk-swf C++23 Programmiersprache Programmierung FBITPRCC: C/C++ INF2023 C++ (DE-588)4193909-8 s Programmierung (DE-588)4076370-5 s DE-604 C++23 (DE-588)1317339894 s C++14 (DE-588)1056920483 s C++17 (DE-588)1147325278 s Erscheint auch als Online-Ausgabe 978-3-446-47846-6 Erscheint auch als Online-Ausgabe, EPUB 978-3-446-47964-7 Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034365736&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p vlb 20230510 DE-101 https://d-nb.info/provenance/plan#vlb |
spellingShingle | Breymann, Ulrich 1949- C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen C++14 (DE-588)1056920483 gnd C++17 (DE-588)1147325278 gnd C++23 (DE-588)1317339894 gnd Programmierung (DE-588)4076370-5 gnd C++ (DE-588)4193909-8 gnd |
subject_GND | (DE-588)1056920483 (DE-588)1147325278 (DE-588)1317339894 (DE-588)4076370-5 (DE-588)4193909-8 |
title | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen |
title_alt | C ++ programmieren |
title_auth | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen |
title_exact_search | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen |
title_exact_search_txtP | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen |
title_full | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen Ulrich Breymann |
title_fullStr | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen Ulrich Breymann |
title_full_unstemmed | C++ programmieren C++ lernen – professionell anwenden – Lösungen nutzen Ulrich Breymann |
title_short | C++ programmieren |
title_sort | c programmieren c lernen professionell anwenden losungen nutzen |
title_sub | C++ lernen – professionell anwenden – Lösungen nutzen |
topic | C++14 (DE-588)1056920483 gnd C++17 (DE-588)1147325278 gnd C++23 (DE-588)1317339894 gnd Programmierung (DE-588)4076370-5 gnd C++ (DE-588)4193909-8 gnd |
topic_facet | C++14 C++17 C++23 Programmierung C++ |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034365736&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT breymannulrich cprogrammierenclernenprofessionellanwendenlosungennutzen AT breymannulrich cprogrammieren |