C++ programmieren: C++ lernen - professionell anwenden - Lösungen nutzen
Gespeichert in:
Vorheriger Titel: | Breymann, Ulrich Der C++-Programmierer |
---|---|
1. Verfasser: | |
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
München
Carl Hanser Verlag
[2020]
|
Ausgabe: | 6., überarbeitete Auflage |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | auf dem Umschlag: aktuell zu C++ 20 |
Beschreibung: | 1007 Seiten 25 cm |
ISBN: | 9783446463868 3446463860 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV046939973 | ||
003 | DE-604 | ||
005 | 20210304 | ||
007 | t | ||
008 | 201014s2020 gw |||| 00||| ger d | ||
015 | |a 20,N21 |2 dnb | ||
016 | 7 | |a 1210296543 |2 DE-101 | |
020 | |a 9783446463868 |c hbk. : circa EUR 39.99 (DE), circa EUR 41.20 (AT) |9 978-3-446-46386-8 | ||
020 | |a 3446463860 |9 3-446-46386-0 | ||
024 | 3 | |a 9783446463868 | |
035 | |a (OCoLC)1200308050 | ||
035 | |a (DE-599)DNB1210296543 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BY | ||
049 | |a DE-860 |a DE-210 |a DE-B768 |a DE-1050 |a DE-12 |a DE-706 |a DE-92 |a DE-19 |a DE-523 |a DE-859 |a DE-1046 |a DE-91 |a DE-739 |a DE-473 |a DE-29T | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Breymann, Ulrich |d 1949- |e Verfasser |0 (DE-588)121409740 |4 aut | |
240 | 1 | 0 | |a Der C++-Programmierer |
245 | 1 | 0 | |a C++ programmieren |b C++ lernen - professionell anwenden - Lösungen nutzen |c Ulrich Breymann |
250 | |a 6., überarbeitete Auflage | ||
264 | 1 | |a München |b Carl Hanser Verlag |c [2020] | |
264 | 4 | |c © 2020 | |
300 | |a 1007 Seiten |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++ 20 | ||
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++20 |0 (DE-588)1221726668 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
653 | |a C++ 20 | ||
653 | |a Programmiersprache | ||
653 | |a Programmierung | ||
653 | |a FBITPRCC: C/C++ | ||
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++20 |0 (DE-588)1221726668 |D s |
689 | 1 | |5 DE-604 | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-3-446-46551-0 |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe, EPUB |z 978-3-446-46470-4 |
780 | 0 | 0 | |i Vorangegangen ist |a Breymann, Ulrich |t Der C++-Programmierer |b 5., überarbeitete Auflage |d 2018 |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032348711&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-032348711 |
Datensatz im Suchindex
_version_ | 1804181841565974528 |
---|---|
adam_text | VORWORT
............................................................................................................................
23
TEIL
I:
EINFUEHRUNG
IN
C++
..............................................................................
25
1
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.5.1
DAS
ERSTE
C++-
PROJEKT
MIT
CODE::BLOCKS
.......................................................
37
1.5.2
XCODE
...............................................................................................................
39
1.6
EINFACHE
DATENTYPEN
UND
OPERATOREN
..........................................................................
40
1.6.1
AUSDRUCK
.........................................................................................................
40
1.6.2
NAMENSKONVENTIONEN
....................................................................................
41
1.6.3
GANZE
ZAHLEN
..................................................................................................
41
1.6.4
REELLE
ZAHLEN
..................................................................................................
49
1.6.5
KONSTANTEN
.......................................................................................................
53
1.6.6
ZEICHEN
............................................................................................................
54
1.6.7
LOGISCHER
DATENTYP
BOOL
................................................................................
57
1.6.8
REGELN
ZUM
BILDEN
VON
AUSDRUECKEN
............................................................
59
1.6.9
STANDARD-TYPUMWANDLUNGEN
........................................................................
60
1.7
GUELTIGKEITSBEREICH
UND
SICHTBARKEIT
.............................................................................
62
6
INHALT
1.7.1
NAMESPACE
STD
.................................................................................................
63
1.8
KONTROLLSTRUKTUREN
..........................................................................................................
64
1.8.1
ANWEISUNGEN
...................................................................................................
64
1.8.2
SEQUENZ
(REIHUNG)
..........................................................................................
66
1.8.3
AUSWAHL
(SELEKTION,
VERZWEIGUNG)
................................................................
66
1.8.4
FALLUNTERSCHEIDUNGEN
MIT
SWITCH
..................................................................
72
1.8.5
WIEDERHOLUNGEN
..............................................................................................
75
1.8.6
KONTROLLE
MIT
BREAK
UND
CONTINUE
.................................................................
82
1.9
BENUTZERDEFINIERTE
UND
ZUSAMMENGESETZTE
DATENTYPEN
.............................................
84
1.9.1
AUFZAEHLUNGSTYPEN
..........................................................................................
85
1.9.2
STRUKTUREN
........................................................................................................
87
1.9.3
DER
C++-
STANDARDTYP
VECTOR
.........................................................................
89
1.9.4
ZEICHENKETTEN:
DER
C++-
STANDARDTYP
STRING
...................................................
94
1.9.5
CONTAINER
UND
SCHLEIFEN
................................................................................
97
1.9.6
TYPERMITTLUNG
MIT
AUTO
..................................................................................
99
1.9.7
DEKLARATION
EINER
STRUKTURIERTEN
BINDUNG
MIT
AUTO
.......................................
101
1.9.8
BITFELD
UND
UNION
............................................................................................
101
1.10
EINFACHE
EIN-
UND
AUSGABE
..........................................................................................
104
1.10.1
STANDARDEIN-
UND
-AUSGABE
............................................................................
104
1.10.2
EIN-
UND
AUSGABE
MIT
DATEIEN
.......................................................................
107
1.11
GUTER
PROGRAMMIERSTIL
....................................................................................................
111
1.11.1
PROGRAMMIERRICHTLINIEN
-
DIE
C++
CORE
GUIDELINES
......................................
112
1.11.2
WERKZEUG
ZUR
CODE-FORMATIERUNG
.................................................................
112
2
PROGRAMMSTRUKTURIERUNG
.....................................................................................
113
2.1
FUNKTIONEN
......................................................................................................................
114
2.1.1
AUFBAU
UND
PROTOTYPEN
..................................................................................
114
2.1.2
GUELTIGKEITSBEREICHE
UND
SICHTBARKEIT
IN
FUNKTIONEN
.....................................
116
2.1.3
LOKALE
STATIC-VARIABLE:
FUNKTION
MIT
GEDAECHTNIS
.........................................
117
2.2
SCHNITTSTELLEN
ZUM
DATENTRANSFER
..................................................................................
118
2.2.1
UEBERGABE
PER
WERT
..........................................................................................
119
2.2.2
UEBERGABE
PER
REFERENZ
...................................................................................
121
2.2.3
GEFAHREN
BEI
DER
RUECKGABE
VON
REFERENZEN
.................................................
123
2.2.4
VORGEGEBENE
PARAMETERWERTE
UND
UNTERSCHIEDLICHE
PARAMETERZAHL
...........
124
2.2.5
UEBERLADEN
VON
FUNKTIONEN
............................................................................
125
2.2.6
FUNKTION
MAIN()
..............................................................................................
127
2.2.7
BEISPIEL
TASCHENRECHNERSIMULATION
...............................................................
128
INHALT
7
2.2.8
SPEZIFIKATION
VON
FUNKTIONEN
........................................................................
133
2.2.9
REIHENFOLGE
DER
AUSWERTUNG
VON
ARGUMENTEN
...........................................
133
2.3
MAKROS
............................................................................................................................
133
2.3.1
#INCLUDE
...........................................................................................................
134
2.3.2
#DEFINE,
#IF,
#IFDEF,
#IFNDEF,
#ELIF,
#ELSE,
#ENDIF
..........................................
134
2.3.3
VERMEIDEN
MEHRFACHER
INKLUDIERUNG
............................................................
135
2.3.4
HASJNCLUDE
.................................................................................................
136
2.3.5
TEXTERSETZUNG
MIT
#DEFINE
.............................................................................
137
2.3.6
UMWANDLUNG
VON
PARAMETERN
IN
ZEICHENKETTEN
..........................................
139
2.3.7
VERIFIZIEREN
LOGISCHER
ANNAHMEN
ZUR
LAUFZEIT
.............................................
139
2.3.8
VERIFIZIEREN
LOGISCHER
ANNAHMEN
ZUR
COMPILATIONSZEIT
...............................
140
2.3.9
FEHLER
OHNE
PROGRAMMABBRUCH
LOKALISIEREN
.................................................
140
2.4
MODULARE
PROGRAMMGESTALTUNG
....................................................................................
141
2.4.1
PROJEKT:
MEHRERE
CPP-DATEIEN
BILDEN
EIN
PROGRAMM
...................................
142
2.4.2
UEBERSETZUNGSEINHEIT,
DEKLARATION,
DEFINITION
..............................................
144
2.4.3
DATEIUEBERGREIFENDE
GUELTIGKEIT
UND
SICHTBARKEIT
............................................
146
2.5
NAMENSRAEUME
.................................................................................................................
147
2.5.1
GUELTIGKEITSBEREICH
AUF
DATEI
BESCHRAENKEN
....................................................
150
2.6
INLINE-FUNKTIONEN
UND
-VARIABLEN
................................................................................
151
2.7
CONSTEXPR-FUNKTIONEN
....................................................................................................
152
2.7.1
BERECHNUNG
ZUR
COMPILATIONSZEIT
MIT
CONSTEVAL
...........................................
154
2.8
RUECKGABETYP
AUTO
...........................................................................................................
155
2.9
FUNKTIONS-TEMPLATES
.....................................................................................................
156
2.9.1
SPEZIALISIERUNG
VON
TEMPLATES
......................................................................
158
2.9.2
EINBINDEN
VON
TEMPLATES
...............................................................................
159
2.10
C++-HEADER
.....................................................................................................................
162
2.10.1
EINBINDEN
VON
C-FUNKTIONEN
........................................................................
163
2.11
MODULE
............................................................................................................................
164
3
OBJEKTORIENTIERUNG
1
..............................................................................................
167
3.1
DATENTYP
UND
OBJEKT
.....................................................................................................
169
3.2
ABSTRAKTER
DATENTYP
.......................................................................................................
169
3.3
KLASSEN
............................................................................................................................
171
3.3.1
CONST-OBJEKTE
UND
METHODEN
.........................................................................
174
3.3.2
INLINE-ELEMENTFUNKTIONEN
...............................................................................
175
3.4
INITIALISIERUNG
UND
KONSTRUKTOREN
................................................................................
176
3.4.1
STANDARDKONSTRUKTOR
........................................................................................
176
8
INHALT
3.4.2
DIREKTE
INITIALISIERUNG
DER
ATTRIBUTE
..............................................................
177
3.4.3
ALLGEMEINE
KONSTRUKTOREN
..............................................................................
178
3.4.4
KOPIERKONSTRUKTOR
............................................................................................
181
3.4.5
TYPUMWANDLUNGSKONSTRUKTOR
........................................................................
184
3.4.6
KONSTRUKTOR
UND
MEHR
VORGEBEN
ODER
VERBIETEN
..........................................
186
3.4.7
EINHEITLICHE
INITIALISIERUNG
UND
SEQUENZKONSTRUKTOR
...................................
187
3.4.8
DELEGIERENDER
KONSTRUKTOR
..............................................................................
189
3.4.9
CONSTEXPR-KONSTRUKTOR
UND
-METHODEN
.........................................................
190
3.5
BEISPIEL
RATIONALE
ZAHLEN
...............................................................................................
194
3.5.1
AUFGABENSTELLUNG
............................................................................................
194
3.5.2
ENTWURF
.............................................................................................................
195
3.5.3
IMPLEMENTATION
................................................................................................
198
3.6
DESTRUKTOREN
....................................................................................................................
203
3.7
WIE
KOMMT
MAN
ZU
KLASSEN
UND
OBJEKTEN?
EIN
BEISPIEL
............................................
205
3.8
GEGENSEITIGE
ABHAENGIGKEIT
VON
KLASSEN
.......................................................................
210
4
ZEIGER
.......................................................................................................................
213
4.1
ZEIGER
UND
ADRESSEN
........................................................................................................
214
4.2
C-ARRAYS
...........................................................................................................................
218
4.2.1
C-ARRAY,
STD::SIZE()
UND
SIZEOF
........................................................................
219
4.2.2
INITIALISIERUNG
VON
C-ARRAYS
...........................................................................
220
4.2.3
ZEIGERARITHMETIK
...............................................
220
4.2.4
INDEXOPERATOR
BEI
C-ARRAYS
............................................................................
222
4.2.5
C-ARRAY
ITERIEREN
.............................................................................................
222
4.3
C-ZEICHENKETTEN
..............................................................................................................
223
4.3.1
SCHLEIFEN
UND
C-STRINGS
..................................................................................
226
4.4
DYNAMISCHE
DATENOBJEKTE
.............................................................................................
229
4.4.1
FREIGEBEN
DYNAMISCHER
OBJEKTE
.....................................................................
232
4.5
ZEIGER
UND
FUNKTIONEN
...................................................................................................
235
4.5.1
PARAMETERUEBERGABE
MIT
ZEIGERN
.....................................................................
235
4.5.2
C-ARRAY
ALS
FUNKTIONSPARAMETER
....................................................................
236
4.5.3
CONST
UND
ZEIGER-PARAMETER
...........................................................................
238
4.5.4
PARAMETER
DES
MAIN-PROGRAMMS
....................................................................
239
4.5.5
GEFAHREN
BEI
DER
RUECKGABE
VON
ZEIGERN
.......................................................
239
4.6
THIS-ZEIGER
......................................................................................................................
240
4.7
MEHRDIMENSIONALE
C-ARRAYS
..........................................................................................
242
4.7.1
STATISCHE
MEHRDIMENSIONALE
C-ARRAYS
...........................................................
242
INHALT
9
4.7.2
MEHRDIMENSIONALES
C-ARRAY
ALS
FUNKTIONSPARAMETER
..................................
243
4.7.3
DYNAMISCH
ERZEUGTE
MEHRDIMENSIONALE
C-ARRAYS
.......................................
246
4.7.4
KLASSE
FUER
DYNAMISCHE
ZWEIDIMENSIONALE
ARRAYS
.........................................
249
4.8
BINAERE
EIN-/AUSGABE
.....................................................................................................
255
4.9
ZEIGER
AUF
FUNKTIONEN
....................................................................................................
258
4.10
TYPUMWANDLUNGEN
FUER
ZEIGER
.......................................................................................
262
4.11
ZEIGER
AUF
ELEMENTFUNKTIONEN
UND
-DATEN
..................................................................
263
4.12
KOMPLEXE
DEKLARATIONEN
LESEN
......................................................................................
264
4.12.1
LESBARKEIT
MIT
TYPEDEF
UND
USING
VERBESSERN
..............................................
265
4.13
ALTERNATIVE
ZU
ROHEN
ZEIGERN,
NEW
UND
DELETE
............................................................
267
5
OBJEKTORIENTIERUNG
2
............................................................................................
271
5.1
EINE
STRING-KLASSE
..........................................................................................................
271
5.1.1
FRIEND-FUNKTIONEN
..........................................................................................
277
5.2
STRING-ANSICHT
.................................................................................................................
278
5.3
TYPBESTIMMUNG
MIT
DECLTYPE
UND
DECLVAL
....................................................................
280
5.4
KLASSENSPEZIFISCHE
DATEN
UND
FUNKTIONEN
..................................................................
284
5.4.1
KLASSENSPEZIFISCHE
KONSTANTE
.........................................................................
288
5.5
KLASSEN-TEMPLATES
.........................................................................................................
291
5.5.1
EIN
STACK-TEMPLATE
.........................................................................................
291
5.5.2
STACK
MIT
STATISCH
FESTGELEGTER
GROESSE
............................................................
293
5.6
CODE
BLOAT
BEI
DER
INSTANZIIERUNG
VON
TEMPLATES
VERMEIDEN
.....................................
295
5.6.1
EXTEM-TEMPLATE
..............................................................................................
295
6
VERERBUNG
..............................................................................................................
297
6.1
VERERBUNG
UND
INITIALISIERUNG
.......................................................................................
302
6.2
ZUGRIFFSSCHUTZ
................................................................................................................
303
6.3
TYPBEZIEHUNG
ZWISCHEN
OBER-
UND
UNTERKLASSE
..........................................................
306
6.4
OBERKLASSEN-SCHNITTSTELLE
VERWENDEN
..........................................................................
307
6.4.1
KONSTRUKTOR
ERBEN
...........................................................................................
308
6.5
UEBERSCHREIBEN
VON
FUNKTIONEN
IN
ABGELEITETEN
KLASSEN
.............................................
310
6.5.1
VIRTUELLE
FUNKTIONEN
.......................................................................................
311
6.5.2
ABSTRAKTE
KLASSEN
...........................................................................................
315
6.5.3
VIRTUELLER
DESTRUKTOR
.......................................................................................
320
6.5.4
VERERBUNG
VERBIETEN
.......................................................................................
322
6.5.5
PRIVATE
VIRTUELLE
FUNKTIONEN
...........................................................................
324
6.6
PROBLEME
DER
MODELLIERUNG
MIT
VERERBUNG
..................................................................
325
6.7
MEHRFACHVERERBUNG
........................................................................................................
328
10
INHALT
6.7.1
NAMENSKONFLIKTE
.............................................................................................
331
6.7.2
VIRTUELLE
BASISKLASSEN
.....................................................................................
332
6.8
STANDARD-TYPUMWANDLUNGSOPERATOREN
........................................................................
335
6.9
TYPINFORMATIONEN
ZUR
LAUFZEIT
......................................................................................
338
6.10
PRIVATE-
UND
PROTECTED-VERERBUNG
................................................................................
340
7
FEHLERBEHANDLUNG
.........................................................................................
343
7.1
AUSNAHMEBEHANDLUNG
...................................................................................................
345
7.1.1
EXCEPTION-SPEZIFIKATION
IN
DEKLARATIONEN
....................................................
348
7.1.2
EXCEPTION-HIERARCHIE
IN
C++
.........................................................................
349
7.1.3
BESONDERE
FEHLERBEHANDLUNGSFUNKTIONEN
......................................................
351
7.1.4
ARITHMETISCHE
FEHLER/DIVISION
DURCH
0
..........................................................
352
7.2
SPEICHERBESCHAFFUNG
MIT
NEW
..................................................................
354
7.3
EXCEPTION-SICHERHEIT
......................................................................................................
355
8
UEBERLADEN
VON
OPERATOREN
..................................................................................
357
8.1
RATIONALE
ZAHLEN
-
NOCH
EINMAL
..................................................................................
359
8.1.1
ARITHMETISCHE
OPERATOREN
...............................................................................
359
8.1.2
AUSGABEOPERATOR
.......................................................................................
361
8.2
EINE
KLASSE
FUER
VEKTOREN
................................................................................................
363
8.2.1
INDEX-OPERATOR
[
]
............................................................................................
366
8.2.2
ZUWEISUNGSOPERATOR
=
.....................................................................................
369
8.2.3
MATHEMATISCHE
VEKTOREN
................................................................................
371
8.2.4
MULTIPLIKATIONSOPERATOR
..................................................................................
372
8.3
INKREMENT-OPERATOR
++
.................................................................................................
374
8.4
TYPUMWANDLUNGSOPERATOR
.............................................................................................
378
8.5
SMART
POINTER:
OPERATOREN
-
UND
*
..............................................................................
380
8.5.1
SMART
POINTER
UND
DIE
C++-STANDARDBIBLIOTHEK
..........................................
385
8.6
OBJEKT
ALS
FUNKTION
........................................................................................................
386
8.7
SPACESHIP-OPERATOR
=
................................................................................................
388
8.7.1
ORDNUNGEN
IN
C++
..........................................................................................
389
8.7.2
AUTOMATISCHE
ERZEUGUNG
DER
VERGLEICHSOPERATOREN
.....................................
390
8.7.3
KLASSENSPEZIFISCHE
SORTIERUNG
........................................................................
391
8.7.4
FREIE
FUNKTIONEN
STATT
ELEMENTFUNKTIONEN
...................................................
392
8.8
NEW
UND
DELETE
UEBERLADEN
.............................................................................................
393
8.8.1
UNTERSCHEIDUNG
ZWISCHEN
HEAP-
UND
STACK-OBJEKTEN
................................
397
8.8.2
EMPFEHLUNGEN
IM
UMGANG
MIT
NEW
UND
DELETE
..........................................
399
8.9
OPERATOREN
FUER
LITERALE
...................................................................................................
399
INHALT
11
8.9.1
STRINGLITERALE
....................................................................................................
400
8.9.2
BENUTZERDEFINIERTE
LITERALE
.............................................................................
401
8.10
OPERATOREN
[]
UND
()
FUER
MATRIZEN
...............................................................................
403
8.10.1
ZWEIDIMENSIONALE
MATRIX
ALS
VEKTOR
VON
VEKTOREN
.....................................
404
8.10.2
ZWEIDIMENSIONALE
MATRIX
MIT
ZUSAMMENHAENGENDEM
SPEICHER
.................
406
8.11
ZUWEISUNG
UND
VERGLEICH
BEI
VERERBUNG
.....................................................................
409
8.11.1
POLYMORPHER
VERGLEICH
...................................................................................
410
8.11.2
KOPIE
MIT
CLONE()-METHODE
ERZEUGEN
............................................................
410
8.11.3
KOPIE
MIT
ZUWEISUNGSOPERATOR
ERZEUGEN
.....................................................
410
9
DATEIEN
UND
STROEME
...............................................................................................
413
9.1
EINGABE
............................................................................................................................
415
9.2
AUSGABE
..........................................................................................................................
417
9.3
FORMATIERUNG
MIT
STD::FORMAT
.......................................................................................
419
9.3.1
SYNTAX
FUER
PLATZHALTER
....................................................................................
419
9.3.2
FORMATIERUNG
EIGENER
DATENTYPEN
.................................................................
423
9.4
FORMATIERUNG
MIT
FLAGS
.................................................................................................
424
9.5
FORMATIERUNG
MIT
MANIPULATOREN
..................................................................................
427
9.5.1
EIGENE
MANIPULATOREN
....................................................................................
433
9.6
FEHLERBEHANDLUNG
...........................................................................................................
434
9.7
TYPUMWANDLUNG
VON
DATEIOBJEKTEN
NACH
BOOL
...........................................................
436
9.8
ARBEIT
MIT
DATEIEN
.........................................................................................................
437
9.8.1
POSITIONIERUNG
IN
DATEIEN
...............................................................................
438
9.8.2
LESEN
UND
SCHREIBEN
IN
DERSELBEN
DATEI
.......................................................
438
9.9
UMLEITUNG
AUF
STRINGS
....................................................................................................
439
9.10
FORMATIERTE
DATEN
LESEN
.................................................................................................
440
9.10.1
EINGABE
BENUTZERDEFINIERTER
TYPEN
...............................................................
440
9.11
BLOCKWEISE
LESEN
UND
SCHREIBEN
...................................................................................
442
9.11.1
VECTOR-OBJEKT
BINAER
LESEN
UND
SCHREIBEN
.....................................................
442
9.11.2
ARRAY-OBJEKT
BINAER
LESEN
UND
SCHREIBEN
........................................................
444
9.11.3
MATRIX
BINAER
LESEN
UND
SCHREIBEN
..................................................................
445
10
DIE
STANDARD
TEMPLATE
LIBRARY
(STL)
...............................................................
447
10.1
CONTAINER,
ITERATOREN,
ALGORITHMEN
..............................................................................
448
10.2
ITERATOREN
IM
DETAIL
........................................................................................................
453
10.3
BEISPIEL
VERKETTETE
LISTE
.................................................................................................
455
10.4
BEREICHE
(RANGES)
............................................................................................................
459
12
INHALT
TEIL
II:
FORTGESCHRITTENE
THEMEN
................................................................
463
11
PERFORMANCE,
WERT-
UND
REFERENZSEMANTIK
.....................................................
465
11.1
PERFORMANCEPROBLEM
WERTSEMANTIK
..............................................................................
467
11.1.1
AUSLASSEN
DER
KOPIE
.......................................................................................
467
11.1.2
TEMPORAERE
OBJEKTE
BEI
DER
ZUWEISUNG
..........................................................
468
11.2
REFERENZSEMANTIK
FUER
R-WERTE
......................................................................................
469
11.2.1
KATEGORIEN
VON
AUSDRUECKEN
...........................................................................
469
11.2.2
REFERENZEN
AUF
R-
UND
L-WERTE
.....................................................................
470
11.2.3
AUSWERTUNG
VON
REFERENZEN
AUF
R-WERTE
......................................................
471
11.3
OPTIMIERUNG
DURCH
REFERENZSEMANTIK
FUER
R-WERTE
.......................................................
472
11.3.1
BEWEGENDER
KONSTRUKTOR
................................................................................
475
11.3.2
BEWEGENDER
ZUWEISUNGSOPERATOR
..................................................................
475
11.4
DIE
MOVE()-FUNKTION
......................................................................................................
476
11.5
REFERENZEN
AUF
R-WERTE
UND
TEMPLATE-PARAMETER
......................................................
478
11.5.1
AUSWERTUNG
VON
TEMPLATE-PARAMETERN
-
EIN
UEBERBLICK
...............................
479
11.6
EIN
EFFIZIENTER
BINAERER
PLUSOPERATOR
..............................................................................
480
11.6.1
ELIMINIEREN
AUCH
DES
BEWEGENDEN
KONSTRUKTORS
.........................................
481
11.6.2
KOPIEN
TEMPORAERER
OBJEKTE
ELIMINIEREN
........................................................
482
11.7
RULE
OF
THREE/FIVE/ZERO
...................................................................................................
483
11.7.1
RULE
OF
THREE
....................................................................................................
483
11.7.2
RULE
OF
FIVE
........................................................
483
11.7.3
RULE
OF
ZERO
......................................................................................................
484
12
LAMBDA-FUNKTIONEN
..............................................................................................
485
12.1
EIGENSCHAFTEN
..................................................................................................................
486
12.1.1
AEQUIVALENZ
ZUM
FUNKTIONSZEIGER
..................................................................
487
12.1.2
LAMBDA-FUNKTION
UND
KLASSE
........................................................................
488
12.2
GENERISCHE
LAMBDA-FUNKTIONEN
...................................................................................
489
12.2.1
GENERISCHE
LAMBDA-FUNKTIONEN
MIT
TEMPLATES
............................................
490
12.3
PARAMETERERFASSUNG
MIT
0
.............................................................................................
491
13
METAPROGRAMMIERUNG
MIT
TEMPLATES
................................................................
493
13.1
GRUNDLAGEN
.....................................................................................................................
494
13.2
VARIADIC
TEMPLATES:
TEMPLATES
MIT
VARIABLER
PARAMETERZAHL
......................................
497
13.2.1
ABLAUF
DER
AUSWERTUNG
DURCH
DEN
COMPILER
................................................
497
13.2.2
ANZAHL
DER
PARAMETER
.....................................................................................
499
13.2.3
PARAMETEREXPANSION
.......................................................................................
499
INHALT
13
13.3
FOLD-EXPRESSIONS
............................................................................................................
501
13.3.1
WEITERE
VARIANTEN
...........................................................................................
502
13.3.2
FOLD-EXPRESSION
MIT
KOMMAOPERATOR
...........................................................
503
13.4
KLASSEN-TEMPLATE
MIT
VARIABLER
STELLIGKEIT
..................................................................
505
13.5
TYPE
TRAITS
......................................................................................................................
505
13.5.1
WIE
FUNKTIONIEREN
TYPE
TRAITS?
*
EIN
BEISPIEL
...............................................
506
13.5.2
ABFRAGE
VON
EIGENSCHAFTEN
............................................................................
509
13.5.3
ABFRAGE
NUMERISCHER
EIGENSCHAFTEN
..............................................................
511
13.5.4
TYPUMWANDLUNGEN
.........................................................................................
511
13.5.5
AUSWAHL
WEITERER
TRAITS
..................................................................................
512
13.6
CONCEPTS
..........................................................................................................................
514
14
REGULAERE
AUSDRUECKE
..............................................................................................
519
14.1
ELEMENTE
REGULAERER
AUSDRUECKE
......................................................................................
520
14.1.1
GREEDY
ODER
LAZY?
...........................................................................................
522
14.2
INTERAKTIVE
AUSWERTUNG
.................................................................................................
524
14.3
AUSZUG
DER
REGEX-SCHNITTSTELLE
....................................................................................
527
14.4
VERARBEITUNG
VON
N
.......................................................................................................
528
14.5
ANWENDUNGEN
.................................................................................................................
530
15
THREADS
UND
COROUTINEN
.......................................................................................
531
15.1
ZEIT
UND
DAUER
...............................................................................................................
532
15.2
THREADS
............................................................................................................................
533
15.2.1
AUTOMATISCH
JOIN()
..........................................................................................
537
15.3
DIE
KLASSE
JTHREAD
...........................................................................................................
538
15.3.1
UEBERGABE
EINES
FUNKTORS
................................................................................
540
15.3.2
THREAD-GROUP
..................................................................................................
542
15.4
SYNCHRONISATION
KRITISCHER
ABSCHNITTE
........................................................................
543
15.4.1
DATA
RACE
ERKENNEN
.........................................................................................
546
15.5
THREAD-STEUERUNG:
PAUSIEREN,
FORTSETZEN,
BEENDEN
....................................................
546
15.6
WARTEN
AUF
EREIGNISSE
....................................................................................................
550
15.7
ATOMARE
VERAENDERUNG
VON
VARIABLEN
...........................................................................
556
15.8
ASYNCHRONE
VERTEILTE
BEARBEITUNG
EINER
AUFGABE
.......................................................
559
15.8.1
FUTURE
UND
ASYNC
.............................................................................................
559
15.8.2
PACKAGED_TASK
UND
FUTURE
.............................................................................
561
15.8.3
PROMISE
UND
FUTURE
.........................................................................................
562
15.9
THREAD-SICHERHEIT
...........................................................................................................
563
15.10
COROUTINEN
......................................................................................................................
564
14
INHALT
16
GRAFISCHE
BENUTZUNGSSCHNITTSTELLEN
.................................................................
569
16.1
EREIGNISGESTEUERTE
PROGRAMMIERUNG
..............................................................................
570
16.2
GUI-PROGRAMMIERUNG
MIT
QT
.........................................................................................
571
16.2.1
INSTALLATION
UND
EINSATZ
..................................................................................
571
16.2.2
META-OBJEKTSYSTEM
.........................................................................................
572
16.2.3
DER
PROGRAMMABLAUF
......................................................................................
573
16.2.4
EREIGNIS
AB
FRAGEN
............................................................................................
574
16.3
SIGNALE,
SLOTS
UND
WIDGETS
............................................................................................
575
16.4
DIALOG
..............................................................................................................................
584
16.5
QT
ODER
STANDARD-C++?
.................................................................................................
587
16.5.1
THREADS
.............................................................................................................
587
16.5.2
VERZEICHNISBAUM
DURCHWANDERN
....................................................................
589
17
INTERNET-ANBINDUNG
...............................................................................................
591
17.1
PROTOKOLLE
........................................................................................................................
592
17.2
ADRESSEN
...........................................................................................................................
592
17.3
SOCKET
..............................................................................................................................
595
17.3.1
BIDIREKTIONALE
KOMMUNIKATION
.......................................................................
598
17.3.2
UDP-SOCKETS
....................................................................................................
600
17.3.3
ATOMUHR
MIT
UDP
ABFRAGEN
...........................................................................
601
17.4
HTTP................................................................................................................................
604
17.4.1
VERBINDUNG
MIT
GET
........................................
605
17.4.2
VERBINDUNG
MIT
POST
.....................................................................................
610
17.5
MINI-WEBSERVER
..............................................................................................................
611
18
DATENBANKANBINDUNG
............................................................................................621
18.1
C++-INTERFACE
..................................................................................................................
622
18.2
ANWENDUNGSBEISPIEL
.......................................................................................................
625
TEIL
III:
AUSGEWAEHLTE
METHODEN
UND
WERKZEUGE
DER
SOFTWAREENTWICKLUNG
................................................
631
19
EFFIZIENTE
PROGRAMMERZEUGUNG
MIT
MAKE
........................................................
633
19.1
WIRKUNGSWEISE
...............................................................................................................
634
19.2
VARIABLEN
UND
MUSTER
....................................................................................................
636
19.3
UNIVERSELLES
MAKEFILE
FUER
EINFACHE
PROJEKTE
.................................................................
638
19.4
AUTOMATISCHE
ERMITTLUNG
VON
ABHAENGIGKEITEN
...........................................................
639
19.4.1
MAKEFILES
FUER
VERSCHIEDENE
BETRIEBSSYSTEME
UND
COMPILER
..........................
641
INHALT
15
19.4.2
GETRENNTE
VERZEICHNISSE:
SRC,
OBJ,
BIN
..............................................................
642
19.5
MAKEFILE
FUER
VERZEICHNISBAEUME
....................................................................................
643
19.5.1
NUR
EIN
MAKEFILE
AUF
PROJEKTEBENE
...............................................................
645
19.5.2
REKURSIVE
MAKE-AUFRUFE
................................................................................
646
19.6
ERZEUGEN
VON
BIBLIOTHEKEN
............................................................................................
648
19.6.1
STATISCHE
BIBLIOTHEKSMODULE
...........................................................................
648
19.6.2
DYNAMISCHE
BIBLIOTHEKSMODULE
.....................................................................
650
19.7
WEITERE
BUILD-TOOLS
........................................................................................................
653
20
UNIT-TEST
.................................................................................................................
655
20.1
WERKZEUGE
......................................................................................................................
656
20.2
TEST
DRIVEN
DEVELOPMENT
..............................................................................................
657
20.3
BOOST
UNIT
TEST
FRAMEWORK
............................................................................................
658
20.3.1
BEISPIEL:
TESTGETRIEBENE
ENTWICKLUNG
EINER
OPERATORFUNKTION
....................
660
20.3.2
FIXTURE
..............................................................................................................
665
20.3.3
TESTPROTOKOLL
UND
LOG-LEVEL
...........................................................................
666
20.3.4
PRUEF-MAKROS
....................................................................................................
667
20.3.5
KOMMANDOZEILEN-OPTIONEN
............................................................................
671
TEIL
IV:
DAS
C++-REZEPTBUCH:
TIPPS
UND
LOESUNGEN
FUER
TYPISCHE
AUFGABEN
...............
673
21
SICHERE
PROGRAMMENTWICKLUNG
...........................................................................
675
21.1
REGELN
ZUM
DESIGN
VON
METHODEN
...............................................................................
675
21.2
DEFENSIVE
PROGRAMMIERUNG
...........................................................................................
677
21.2.1
DOUBLE-
UND
FLOAT-WERTE
RICHTIG
VERGLEICHEN
................................................
678
21.2.2
CONST
UND
CONSTEXPR
VERWENDEN
....................................................................
679
21.2.3
ANWEISUNGEN
NACH
FOR/IF/WHILE
EINKLAMMEM
.............................................
679
21.2.4
INT
UND
UNSIGNED/SIZE_T
NICHT
MISCHEN
........................................................
679
21.2.5
SIZE_T
ODER
AUTO
STATT
UNSIGNED
INT
VERWENDEN
.............................................
679
21.2.6
POSTFIX++
MIT
PRAEFIX++
IMPLEMENTIEREN
.......................................................
680
21.2.7
EIN
DESTRUKTOR
DARF
KEINE
EXCEPTION
WERFEN
................................................
681
21.2.8
EXPLICIT-TYPUMWANDLUNGSOPERATOR
BEVORZUGEN
..........................................
681
21.2.9
EXPLICIT-KONSTRUKTOR
FUER
EINE
TYPUMWANDLUNG
BEVORZUGEN
.......................
681
21.2.10
LEERE
STANDARDKONSTRUKTOREN
VERMEIDEN
.....................................................
681
21.2.11
MIT
OVERRIDE
SCHREIBFEHLER
REDUZIEREN
...........................................................
681
21.2.12
KOPIEREN
UND
ZUWEISUNG
VERBIETEN
..............................................................
682
16
INHALT
21.2.13
VERERBUNG
VERBIETEN
.......................................................................................
682
21.2.14
UEBERSCHREIBEN
EINER
VIRTUELLEN
METHODE
VERHINDERN
...................................
682
21.2.15
RULE
OF
ZERO
BEACHTEN
..................................................................................
683
21.2.16
ONE
DEFINITION
RULE
.........................................................................................
683
21.2.17
DEFENSIV
OBJEKTE
LOESCHEN
...............................................................................
683
21.2.18
SPEICHERBESCHAFFUNG
UND
-FREIGABE
KAPSELN
.................................................
684
21.2.19
PROGRAMMIERRICHTLINIENEINHALTEN
.................................................................
684
21.3
EXCEPTION-SICHERE
BESCHAFFUNG
VON
RESSOURCEN
..........................................................
684
21.3.1
SICHERE
VERWENDUNG
VON
UNIQUE_PTR
UND
SHARED_PTR
..................................
684
21.3.2
SO
VERMEIDEN
SIE
NEW
UND
DELETE!
.................................................................
685
21.3.3
SHARED_PTR
FUER
ARRAYS
KORREKT
VERWENDEN
....................................................
685
21.3.4
UNIQUE_PTR
FUER
ARRAYS
KORREKT
VERWENDEN
....................................................
687
21.3.5
EXCEPTION-SICHERE
FUNKTION
...........................................................................
687
21.3.6
EXCEPTION-SICHERER
KONSTRUKTOR
.....................................................................
688
21.3.7
EXCEPTION-SICHERE
ZUWEISUNG
........................................................................
689
21.4
EMPFEHLUNGEN
ZUR
THREAD-PROGRAMMIERUNG
...............................................................
689
21.4.1
WARTEN
AUF
DIE
FREIGABE
VON
RESSOURCEN
......................................................
689
21.4.2
DEADLOCK-VERMEIDUNG
.....................................................................................
690
21.4.3
NOTIFY_ALL
ODER
NOTIFY_ONE?
............................................................................
691
21.4.4
PERFORMANCE
MIT
THREADS
VERBESSERN?
...........................................................
691
22
VON
DER
UML
NACH
C++
.............................................
693
22.1
VERERBUNG
........................................................................................................................
694
22.2
INTERFACE
ANBIETEN
UND
NUTZEN
......................................................................................
694
22.3
ASSOZIATION
.....................................................................................................................
696
22.3.1
AGGREGATION
......................................................................................................
699
22.3.2
KOMPOSITION
....................................................................................................
700
23
ALGORITHMEN
FUER
VERSCHIEDENE
AUFGABEN
...........................................................
701
23.1
ALGORITHMEN
MIT
STRINGS
...............................................................................................
702
23.1.1
STRING
SPLITTEN
.................................................................................................
702
23.1.2
STRING
IN
ZAHL
UMWANDELN
..............................................................................
703
23.1.3
ZAHL
IN
STRING
UMWANDELN
..............................................................................
706
23.1.4
STRINGS
SPRACHLICH
RICHTIG
SORTIEREN
...............................................................
706
23.1.5
UMWANDLUNG
IN
KLEIN-
BZW.
GROSSSCHREIBUNG
...............................................
708
23.1.6
STRINGS
SPRACHLICH
RICHTIG
VERGLEICHEN
...........................................................
709
23.1.7
VON
DER
GROSS-/KLEINSCHREIBUNG
UNABHAENGIGER
ZEICHENVERGLEICH
..............
710
23.1.8
VON
DER
GROSS-/KLEINSCHREIBUNG
UNABHAENGIGE
SUCHE
..................................
710
INHALT
17
23.2
TEXTVERARBEITUNG
............................................................................................................
712
23.2.1
DATEI
DURCHSUCHEN
..........................................................................................
712
23.2.2
ERSETZUNGEN
IN
EINER
DATEI
.............................................................................
713
23.2.3
LINES
OF
CODE
(LOC)
ERMITTELN
........................................................................
715
23.2.4
ZEILEN,
WOERTER
UND
ZEICHEN
EINER
DATEI
ZAEHLEN
.............................................
717
23.2.5
CSV-DATEI
LESEN
..............................................................................................
717
23.2.6
KREUZREFERENZLISTE
............................................................................................
718
23.3
OPERATIONEN
AUF
FOLGEN
.................................................................................................
720
23.3.1
VEREINFACHUNGEN
.............................................................................................
720
23.3.2
FOLGE
MIT
GLEICHEN
WERTEN
INITIALISIEREN
.......................................................
722
23.3.3
FOLGE
MIT
WERTEN
EINES
GENERATORS
INITIALISIEREN
.........................................
723
23.3.4
FOLGE
MIT
FORTLAUFENDEN
WERTEN
INITIALISIEREN
..............................................
723
23.3.5
SUMME
UND
PRODUKT
.......................................................................................
724
23.3.6
MITTELWERT
UND
STANDARDABWEICHUNG
.............................................................
725
23.3.7
SKALARPRODUKT
...................................................................................................
726
23.3.8
FOLGE
DER
TEILSUMMEN
ODER
-PRODUKTE
..........................................................
727
23.3.9
FOLGE
DER
DIFFERENZEN
......................................................................................
728
23.3.10
KLEINSTES
UND
GROESSTES
ELEMENT
FINDEN
...........................................................
730
23.3.11
ELEMENTE
ROTIEREN
............................................................................................
731
23.3.12
ELEMENTE
VERWUERFELN
.......................................................................................
732
23.3.13
DUBLETTEN
ENTFERNEN
.......................................................................................
733
23.3.14
REIHENFOLGE
UMDREHEN
...................................................................................
735
23.3.15
STICHPROBE
........................................................................................................
736
23.3.16
ANZAHL
DER
ELEMENTE,
DIE
EINER
BEDINGUNG
GENUEGEN
...................................
737
23.3.17
GILT
EIN
PRAEDIKAT
FUER
ALLE,
KEIN
ODER
WENIGSTENS
EIN
ELEMENT
EINER
FOLGE?
.
738
23.3.18
PERMUTATIONEN
.................................................................................................
739
23.3.19
LEXIKOGRAFISCHER
VERGLEICH
.............................................................................
742
23.4
SORTIEREN
UND
VERWANDTES
.............................................................................................
744
23.4.1
PARTITIONIEREN
..................................................................................................
744
23.4.2
SORTIEREN
...........................................................................................................
747
23.4.3
STABILES
SORTIEREN
...........................................................................................
747
23.4.4
PARTIELLES
SORTIEREN
..........................................................................................
749
23.4.5
DAS
N.-GROESSTE
ODER
N.-KLEINSTE
ELEMENT
FINDEN
............................................
750
23.4.6
VERSCHMELZEN
(MERGE)
....................................................................................
752
23.5
SUCHEN
UND
FINDEN
........................................................................................................
754
23.5.1
ELEMENT
FINDEN
................................................................................................
754
23.5.2
ELEMENT
EINER
MENGE
IN
DER
FOLGE
FINDEN
....................................................
755
18
INHALT
23.5.3
TEILFOLGE
FINDEN
................................................................................................
756
23.5.4
TEILFOLGE
MIT
SPEZIELLEM
ALGORITHMUS
FINDEN
................................................
758
23.5.5
BESTIMMTE
BENACHBARTE
ELEMENTE
FINDEN
.......................................................
759
23.5.6
BESTIMMTE
AUFEINANDERFOLGENDE
WERTE
FINDEN
...............................................
760
23.5.7
BINAERE
SUCHE
....................................................................................................
761
23.6
MENGENOPERATIONEN
AUF
SORTIERTEN
STRUKTUREN
.............................................................
764
23.6.1
TEILMENGENRELATION
.........................................................................................
764
23.6.2
VEREINIGUNG
......................................................................................................
765
23.6.3
SCHNITTMENGE
...................................................................................................
766
23.6.4
DIFFERENZ
..........................................................................................................
767
23.6.5
SYMMETRISCHE
DIFFERENZ
..................................................................................
768
23.7
HEAP-ALGORITHMEN
..........................................................................................................
768
23.7.1
POP_HEAP
..........................................................................................................
770
23.7.2
PUSH_HEAP
........................................................................................................
771
23.7.3
MAKE_HEAP
.......................................................................................................
771
23.7.4
SORT_HEAP
..........................................................................................................
772
23.7.5
IS_HEAP
.............................................................................................................
772
23.8
VERGLEICH
VON
CONTAINERN
AUCH
UNGLEICHEN
TYPS
........................................................
773
23.8.1
UNTERSCHIEDLICHE
ELEMENTE
FINDEN
.................................................................
773
23.8.2
PRUEFUNG
AUF
GLEICHE
INHALTE
...........................................................................
775
23.9
RECHNEN
MIT
KOMPLEXEN
ZAHLEN:
DER
C++-
STANDARDTYP
COMPLEX
..............................
776
23.10
VERMISCHTES
......................................................................
778
23.10.1
ERKENNUNG
EINES
DATUMS
................................................................................
778
23.10.2
ERKENNUNG
EINER
IPV4-ADRESSE
.......................................................................
780
23.10.3
ERZEUGEN
VON
ZUFALLSZAHLEN
...........................................................................
781
23.10.4
FOR_EACH
-
AUF
JEDEM
ELEMENT
EINE
FUNKTION
AUSFUEHREN
...........................
786
23.10.5
VERSCHIEDENE
MOEGLICHKEITEN,
CONTAINER-BEREICHE
ZU
KOPIEREN
....................
787
23.10.6
VERTAUSCHEN
VON
ELEMENTEN,
BEREICHEN
UND
CONTAINERN
............................
790
23.10.7
ELEMENTE
TRANSFORMIEREN
................................................................................
791
23.10.8
ERSETZEN
UND
VARIANTEN
..................................................................................
792
23.10.9
ELEMENTE
HERAUSFILTEM
...................................................................................
794
23.10.10
GRENZWERTE
VON
ZAHLTYPEN
............................................................................
795
23.10.11
MINIMUM
UND
MAXIMUM
...............................................................................
796
23.10.12
WERT
BEGRENZEN
................................................................................................
798
23.10.13
GGT,
KGV
UND
MITTE
.........................................................................................
799
23.11
PARALLELISIERBARE
ALGORITHMEN
.......................................................................................
800
INHALT
19
24
DATEI-
UND
VERZEICHNISOPERATIONEN
....................................................................
803
24.1
UEBERSICHT
.........................................................................................................................
804
24.2
PFADOPERATIONEN
..............................................................................................................
805
24.3
DATEI
ODER
VERZEICHNIS
LOESCHEN
......................................................................................
806
24.4
DATEI
ODER
VERZEICHNIS
KOPIEREN
...................................................................................
808
24.5
VERZEICHNIS
ANLEGEN
.......................................................................................................
809
24.6
DATEI
ODER
VERZEICHNIS
UMBENENNEN
............................................................................
810
24.7
VERZEICHNIS
ANZEIGEN
.....................................................................................................
811
24.8
VERZEICHNISBAUM
ANZEIGEN
............................................................................................
812
TEIL
V:
DIE
C++-STANDARDBIBLIOTHEK
.............................................................
813
25
AUFBAU
UND
UEBERSICHT
...........................................................................................
815
25.1
AUSLASSUNGEN
..................................................................................................................
817
25.2
BEISPIELE
DES
BUCHS
UND
DIE
C++-STANDARDBIBLIOTHEK
................................................
819
26
HILFSFUNKTIONEN
UND
-KLASSEN
..............................................................................
821
26.1
UNTERSTUETZUNG
DER
REFERENZSEMANTIK
FUER
R-WERTE
.......................................................
821
26.2
PAARE
................................................................................................................................
823
26.3
TUPEL
................................................................................................................................
825
26.4
BITSET
................................................................................................................................
827
26.5
INDEXFOLGEN
.....................................................................................................................
830
26.6
VARIANT
STATT
UNION
.........................................................................................................
831
26.7
FUNKTIONSOBJEKTE
............................................................................................................
832
26.7.1
ARITHMETISCHE,
VERGLEICHENDE
UND
LOGISCHE
OPERATIONEN
............................
832
26.7.2
BINDEN
VON
ARGUMENTWERTEN
.........................................................................
833
26.7.3
FUNKTIONEN
IN
OBJEKTE
UMWANDELN
...............................................................
835
26.8
TEMPLATES
FUER
RATIONALE
ZAHLEN
......................................................................................
837
26.9
HUELLKLASSE
FUER
REFERENZEN
..............................................................................................
838
26.10
OPTIONALE
OBJEKTE
...........................................................................................................
839
27
CONTAINER
................................................................................................................
841
27.1
GEMEINSAME
EIGENSCHAFTEN
...........................................................................................
843
27.1.1
REVERSIBLE
CONTAINER
.......................................................................................
845
27.1.2
INITIALISIERUNGSLISTE
(INITIALIZER_LIST)
...............................................................
846
27.1.3
KONSTRUKTION
AN
ORT
UND
STELLE
......................................................................
847
27.2
SEQUENZEN
......................................................................................................................
848
27.2.1
VECTOR
................................................................................................................
849
20
INHALT
27.2.2
VECTOR BOOL
...................................................................................................
850
27.2.3
ARRAY
.................................................................................................................
851
27.2.4
LIST
.....................................................................................................................
854
27.2.5
DEQUE
...............................................................................................................
856
27.3
CONTAINER-ADAPTER
..........................................................................................................
858
27.3.1
STACK
.................................................................................................................
858
27.3.2
QUEUE
...............................................................................................................
859
27.3.3
PRIORITY_QUEUE
.................................................................................................
860
27.4
ASSOZIATIVE
CONTAINER
....................................................................................................
862
27.4.1
SORTIERTE
ASSOZIATIVE
CONTAINER
.......................................................................
864
27.4.2
HASH-CONTAINER
................................................................................................
872
27.5
SICHT
AUF
CONTAINER
(SPAN)
.............................................................................................
879
28
ITERATOREN
...............................................................................................................
881
28.1
ITERATOR-KATEGORIEN
........................................................................................................
882
28.1.1
ANWENDUNG
VON
TRAITS
...................................................................................
884
28.2
ABSTAND
UND
BEWEGEN
...................................................................................................
887
28.3
ZUGRIFF
AUF
ANFANG
UND
ENDE
.......................................................................................
888
28.3.1
REVERSE-ITERATOREN
..........................................................................................
889
28.4
INSERT-ITERATOREN
..............................................................................................................
890
28.5
STREAM-ITERATOREN
...........................................................................................................
892
29
ALGORITHMEN
............................................................
895
29.1
ALGORITHMEN
MIT
PRAEDIKAT
..............................................................................................
896
29.2
UEBERSICHT
.........................................................................................................................
897
30
NATIONALE
BESONDERHEITEN
....................................................................................
901
30.1
SPRACHUMGEBUNG
FESTLEGEN
UND
AENDERN
......................................................................
902
30.1.1
DIE
LOCALE-FUNKTIONEN
.....................................................................................
903
30.2
ZEICHENSAETZE
UND
-CODIERUNG
.........................................................................................
904
30.3
ZEICHENKLASSIFIZIERUNG
UND
-UMWANDLUNG
..................................................................
909
30.4
KATEGORIEN
......................................................................................................................
910
30.4.1
COLLATE
...............................................................................................................
910
30.4.2
CTYPE
.................................................................................................................
911
30.4.3
NUMERIC
.............................................................................................................
912
30.4.4
MONETARY
..........................................................................................................
914
30.4.5
TIME
..................................................................................................................
917
30.4.6
MESSAGES
..........................................................................................................
919
INHALT
21
30.5
KONSTRUKTION
EIGENER
FACETTEN
.....................................................................................
921
31
STRING
.....................................................................................................................
923
31.1
STRING_VIEW
FUER
STRING-LITERALE
......................................................................................
933
32
SPEICHERMANAQEMENT
..........................................................................................
935
32.1
UNIQUE_PTR
......................................................................................................................
935
32.2
SHARED_PTR
........................................................................................................................
938
32.3
WEAK_PTR
.........................................................................................................................
940
32.4
NEW
MIT
SPEICHERORTANGABE
..........................................................................................
941
33
AUSGEWAEHLTE
C-HEADER
........................................................................................
943
33.1
CASSERT
.........................................................................................................................
943
33.2
CCTYPE
.........................................................................................................................
944
33.3
CMATH
..........................................................................................................................
945
33.4
CSTDDEF
.........................................................................................................................
946
33.5
CSTDLIB
.........................................................................................................................
946
33.6
CSTRING
.........................................................................................................................
947
33.7
CTIME
..........................................................................................................................
949
A
ANHANG
....................................................................................................................
951
A.1
ASCII-TABELLE.................................................................................................................
951
A.2
C++-SCHLUESSELWOERTER
....................................................................................................
953
A.3
COMPILERBEFEHLE
............................................................................................................
954
A.4
RANGFOLGE
DER
OPERATOREN
...........................................................................................
955
A.5
C++-ATTRIBUTE
FUER
DEN
COMPILER
..................................................................................
957
A.6
LOESUNGEN
ZU
DEN
UEBUNGSAUFGABEN
.............................................................................
957
A.7
AENDERUNGEN
IN
DER
6.
AUFLAGE
....................................................................................
967
GLOSSAR
.............................................................................................................................
969
LITERATURVERZEICHNIS
......................................................................................................
979
REGISTER
983
|
adam_txt |
VORWORT
.
23
TEIL
I:
EINFUEHRUNG
IN
C++
.
25
1
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.5.1
DAS
ERSTE
C++-
PROJEKT
MIT
CODE::BLOCKS
.
37
1.5.2
XCODE
.
39
1.6
EINFACHE
DATENTYPEN
UND
OPERATOREN
.
40
1.6.1
AUSDRUCK
.
40
1.6.2
NAMENSKONVENTIONEN
.
41
1.6.3
GANZE
ZAHLEN
.
41
1.6.4
REELLE
ZAHLEN
.
49
1.6.5
KONSTANTEN
.
53
1.6.6
ZEICHEN
.
54
1.6.7
LOGISCHER
DATENTYP
BOOL
.
57
1.6.8
REGELN
ZUM
BILDEN
VON
AUSDRUECKEN
.
59
1.6.9
STANDARD-TYPUMWANDLUNGEN
.
60
1.7
GUELTIGKEITSBEREICH
UND
SICHTBARKEIT
.
62
6
INHALT
1.7.1
NAMESPACE
STD
.
63
1.8
KONTROLLSTRUKTUREN
.
64
1.8.1
ANWEISUNGEN
.
64
1.8.2
SEQUENZ
(REIHUNG)
.
66
1.8.3
AUSWAHL
(SELEKTION,
VERZWEIGUNG)
.
66
1.8.4
FALLUNTERSCHEIDUNGEN
MIT
SWITCH
.
72
1.8.5
WIEDERHOLUNGEN
.
75
1.8.6
KONTROLLE
MIT
BREAK
UND
CONTINUE
.
82
1.9
BENUTZERDEFINIERTE
UND
ZUSAMMENGESETZTE
DATENTYPEN
.
84
1.9.1
AUFZAEHLUNGSTYPEN
.
85
1.9.2
STRUKTUREN
.
87
1.9.3
DER
C++-
STANDARDTYP
VECTOR
.
89
1.9.4
ZEICHENKETTEN:
DER
C++-
STANDARDTYP
STRING
.
94
1.9.5
CONTAINER
UND
SCHLEIFEN
.
97
1.9.6
TYPERMITTLUNG
MIT
AUTO
.
99
1.9.7
DEKLARATION
EINER
STRUKTURIERTEN
BINDUNG
MIT
AUTO
.
101
1.9.8
BITFELD
UND
UNION
.
101
1.10
EINFACHE
EIN-
UND
AUSGABE
.
104
1.10.1
STANDARDEIN-
UND
-AUSGABE
.
104
1.10.2
EIN-
UND
AUSGABE
MIT
DATEIEN
.
107
1.11
GUTER
PROGRAMMIERSTIL
.
111
1.11.1
PROGRAMMIERRICHTLINIEN
-
DIE
C++
CORE
GUIDELINES
.
112
1.11.2
WERKZEUG
ZUR
CODE-FORMATIERUNG
.
112
2
PROGRAMMSTRUKTURIERUNG
.
113
2.1
FUNKTIONEN
.
114
2.1.1
AUFBAU
UND
PROTOTYPEN
.
114
2.1.2
GUELTIGKEITSBEREICHE
UND
SICHTBARKEIT
IN
FUNKTIONEN
.
116
2.1.3
LOKALE
STATIC-VARIABLE:
FUNKTION
MIT
GEDAECHTNIS
.
117
2.2
SCHNITTSTELLEN
ZUM
DATENTRANSFER
.
118
2.2.1
UEBERGABE
PER
WERT
.
119
2.2.2
UEBERGABE
PER
REFERENZ
.
121
2.2.3
GEFAHREN
BEI
DER
RUECKGABE
VON
REFERENZEN
.
123
2.2.4
VORGEGEBENE
PARAMETERWERTE
UND
UNTERSCHIEDLICHE
PARAMETERZAHL
.
124
2.2.5
UEBERLADEN
VON
FUNKTIONEN
.
125
2.2.6
FUNKTION
MAIN()
.
127
2.2.7
BEISPIEL
TASCHENRECHNERSIMULATION
.
128
INHALT
7
2.2.8
SPEZIFIKATION
VON
FUNKTIONEN
.
133
2.2.9
REIHENFOLGE
DER
AUSWERTUNG
VON
ARGUMENTEN
.
133
2.3
MAKROS
.
133
2.3.1
#INCLUDE
.
134
2.3.2
#DEFINE,
#IF,
#IFDEF,
#IFNDEF,
#ELIF,
#ELSE,
#ENDIF
.
134
2.3.3
VERMEIDEN
MEHRFACHER
INKLUDIERUNG
.
135
2.3.4
HASJNCLUDE
.
136
2.3.5
TEXTERSETZUNG
MIT
#DEFINE
.
137
2.3.6
UMWANDLUNG
VON
PARAMETERN
IN
ZEICHENKETTEN
.
139
2.3.7
VERIFIZIEREN
LOGISCHER
ANNAHMEN
ZUR
LAUFZEIT
.
139
2.3.8
VERIFIZIEREN
LOGISCHER
ANNAHMEN
ZUR
COMPILATIONSZEIT
.
140
2.3.9
FEHLER
OHNE
PROGRAMMABBRUCH
LOKALISIEREN
.
140
2.4
MODULARE
PROGRAMMGESTALTUNG
.
141
2.4.1
PROJEKT:
MEHRERE
CPP-DATEIEN
BILDEN
EIN
PROGRAMM
.
142
2.4.2
UEBERSETZUNGSEINHEIT,
DEKLARATION,
DEFINITION
.
144
2.4.3
DATEIUEBERGREIFENDE
GUELTIGKEIT
UND
SICHTBARKEIT
.
146
2.5
NAMENSRAEUME
.
147
2.5.1
GUELTIGKEITSBEREICH
AUF
DATEI
BESCHRAENKEN
.
150
2.6
INLINE-FUNKTIONEN
UND
-VARIABLEN
.
151
2.7
CONSTEXPR-FUNKTIONEN
.
152
2.7.1
BERECHNUNG
ZUR
COMPILATIONSZEIT
MIT
CONSTEVAL
.
154
2.8
RUECKGABETYP
AUTO
.
155
2.9
FUNKTIONS-TEMPLATES
.
156
2.9.1
SPEZIALISIERUNG
VON
TEMPLATES
.
158
2.9.2
EINBINDEN
VON
TEMPLATES
.
159
2.10
C++-HEADER
.
162
2.10.1
EINBINDEN
VON
C-FUNKTIONEN
.
163
2.11
MODULE
.
164
3
OBJEKTORIENTIERUNG
1
.
167
3.1
DATENTYP
UND
OBJEKT
.
169
3.2
ABSTRAKTER
DATENTYP
.
169
3.3
KLASSEN
.
171
3.3.1
CONST-OBJEKTE
UND
METHODEN
.
174
3.3.2
INLINE-ELEMENTFUNKTIONEN
.
175
3.4
INITIALISIERUNG
UND
KONSTRUKTOREN
.
176
3.4.1
STANDARDKONSTRUKTOR
.
176
8
INHALT
3.4.2
DIREKTE
INITIALISIERUNG
DER
ATTRIBUTE
.
177
3.4.3
ALLGEMEINE
KONSTRUKTOREN
.
178
3.4.4
KOPIERKONSTRUKTOR
.
181
3.4.5
TYPUMWANDLUNGSKONSTRUKTOR
.
184
3.4.6
KONSTRUKTOR
UND
MEHR
VORGEBEN
ODER
VERBIETEN
.
186
3.4.7
EINHEITLICHE
INITIALISIERUNG
UND
SEQUENZKONSTRUKTOR
.
187
3.4.8
DELEGIERENDER
KONSTRUKTOR
.
189
3.4.9
CONSTEXPR-KONSTRUKTOR
UND
-METHODEN
.
190
3.5
BEISPIEL
RATIONALE
ZAHLEN
.
194
3.5.1
AUFGABENSTELLUNG
.
194
3.5.2
ENTWURF
.
195
3.5.3
IMPLEMENTATION
.
198
3.6
DESTRUKTOREN
.
203
3.7
WIE
KOMMT
MAN
ZU
KLASSEN
UND
OBJEKTEN?
EIN
BEISPIEL
.
205
3.8
GEGENSEITIGE
ABHAENGIGKEIT
VON
KLASSEN
.
210
4
ZEIGER
.
213
4.1
ZEIGER
UND
ADRESSEN
.
214
4.2
C-ARRAYS
.
218
4.2.1
C-ARRAY,
STD::SIZE()
UND
SIZEOF
.
219
4.2.2
INITIALISIERUNG
VON
C-ARRAYS
.
220
4.2.3
ZEIGERARITHMETIK
.
220
4.2.4
INDEXOPERATOR
BEI
C-ARRAYS
.
222
4.2.5
C-ARRAY
ITERIEREN
.
222
4.3
C-ZEICHENKETTEN
.
223
4.3.1
SCHLEIFEN
UND
C-STRINGS
.
226
4.4
DYNAMISCHE
DATENOBJEKTE
.
229
4.4.1
FREIGEBEN
DYNAMISCHER
OBJEKTE
.
232
4.5
ZEIGER
UND
FUNKTIONEN
.
235
4.5.1
PARAMETERUEBERGABE
MIT
ZEIGERN
.
235
4.5.2
C-ARRAY
ALS
FUNKTIONSPARAMETER
.
236
4.5.3
CONST
UND
ZEIGER-PARAMETER
.
238
4.5.4
PARAMETER
DES
MAIN-PROGRAMMS
.
239
4.5.5
GEFAHREN
BEI
DER
RUECKGABE
VON
ZEIGERN
.
239
4.6
THIS-ZEIGER
.
240
4.7
MEHRDIMENSIONALE
C-ARRAYS
.
242
4.7.1
STATISCHE
MEHRDIMENSIONALE
C-ARRAYS
.
242
INHALT
9
4.7.2
MEHRDIMENSIONALES
C-ARRAY
ALS
FUNKTIONSPARAMETER
.
243
4.7.3
DYNAMISCH
ERZEUGTE
MEHRDIMENSIONALE
C-ARRAYS
.
246
4.7.4
KLASSE
FUER
DYNAMISCHE
ZWEIDIMENSIONALE
ARRAYS
.
249
4.8
BINAERE
EIN-/AUSGABE
.
255
4.9
ZEIGER
AUF
FUNKTIONEN
.
258
4.10
TYPUMWANDLUNGEN
FUER
ZEIGER
.
262
4.11
ZEIGER
AUF
ELEMENTFUNKTIONEN
UND
-DATEN
.
263
4.12
KOMPLEXE
DEKLARATIONEN
LESEN
.
264
4.12.1
LESBARKEIT
MIT
TYPEDEF
UND
USING
VERBESSERN
.
265
4.13
ALTERNATIVE
ZU
ROHEN
ZEIGERN,
NEW
UND
DELETE
.
267
5
OBJEKTORIENTIERUNG
2
.
271
5.1
EINE
STRING-KLASSE
.
271
5.1.1
FRIEND-FUNKTIONEN
.
277
5.2
STRING-ANSICHT
.
278
5.3
TYPBESTIMMUNG
MIT
DECLTYPE
UND
DECLVAL
.
280
5.4
KLASSENSPEZIFISCHE
DATEN
UND
FUNKTIONEN
.
284
5.4.1
KLASSENSPEZIFISCHE
KONSTANTE
.
288
5.5
KLASSEN-TEMPLATES
.
291
5.5.1
EIN
STACK-TEMPLATE
.
291
5.5.2
STACK
MIT
STATISCH
FESTGELEGTER
GROESSE
.
293
5.6
CODE
BLOAT
BEI
DER
INSTANZIIERUNG
VON
TEMPLATES
VERMEIDEN
.
295
5.6.1
EXTEM-TEMPLATE
.
295
6
VERERBUNG
.
297
6.1
VERERBUNG
UND
INITIALISIERUNG
.
302
6.2
ZUGRIFFSSCHUTZ
.
303
6.3
TYPBEZIEHUNG
ZWISCHEN
OBER-
UND
UNTERKLASSE
.
306
6.4
OBERKLASSEN-SCHNITTSTELLE
VERWENDEN
.
307
6.4.1
KONSTRUKTOR
ERBEN
.
308
6.5
UEBERSCHREIBEN
VON
FUNKTIONEN
IN
ABGELEITETEN
KLASSEN
.
310
6.5.1
VIRTUELLE
FUNKTIONEN
.
311
6.5.2
ABSTRAKTE
KLASSEN
.
315
6.5.3
VIRTUELLER
DESTRUKTOR
.
320
6.5.4
VERERBUNG
VERBIETEN
.
322
6.5.5
PRIVATE
VIRTUELLE
FUNKTIONEN
.
324
6.6
PROBLEME
DER
MODELLIERUNG
MIT
VERERBUNG
.
325
6.7
MEHRFACHVERERBUNG
.
328
10
INHALT
6.7.1
NAMENSKONFLIKTE
.
331
6.7.2
VIRTUELLE
BASISKLASSEN
.
332
6.8
STANDARD-TYPUMWANDLUNGSOPERATOREN
.
335
6.9
TYPINFORMATIONEN
ZUR
LAUFZEIT
.
338
6.10
PRIVATE-
UND
PROTECTED-VERERBUNG
.
340
7
FEHLERBEHANDLUNG
.
343
7.1
AUSNAHMEBEHANDLUNG
.
345
7.1.1
EXCEPTION-SPEZIFIKATION
IN
DEKLARATIONEN
.
348
7.1.2
EXCEPTION-HIERARCHIE
IN
C++
.
349
7.1.3
BESONDERE
FEHLERBEHANDLUNGSFUNKTIONEN
.
351
7.1.4
ARITHMETISCHE
FEHLER/DIVISION
DURCH
0
.
352
7.2
SPEICHERBESCHAFFUNG
MIT
NEW
.
354
7.3
EXCEPTION-SICHERHEIT
.
355
8
UEBERLADEN
VON
OPERATOREN
.
357
8.1
RATIONALE
ZAHLEN
-
NOCH
EINMAL
.
359
8.1.1
ARITHMETISCHE
OPERATOREN
.
359
8.1.2
AUSGABEOPERATOR
.
361
8.2
EINE
KLASSE
FUER
VEKTOREN
.
363
8.2.1
INDEX-OPERATOR
[
]
.
366
8.2.2
ZUWEISUNGSOPERATOR
=
.
369
8.2.3
MATHEMATISCHE
VEKTOREN
.
371
8.2.4
MULTIPLIKATIONSOPERATOR
.
372
8.3
INKREMENT-OPERATOR
++
.
374
8.4
TYPUMWANDLUNGSOPERATOR
.
378
8.5
SMART
POINTER:
OPERATOREN
-
UND
*
.
380
8.5.1
SMART
POINTER
UND
DIE
C++-STANDARDBIBLIOTHEK
.
385
8.6
OBJEKT
ALS
FUNKTION
.
386
8.7
SPACESHIP-OPERATOR
=
.
388
8.7.1
ORDNUNGEN
IN
C++
.
389
8.7.2
AUTOMATISCHE
ERZEUGUNG
DER
VERGLEICHSOPERATOREN
.
390
8.7.3
KLASSENSPEZIFISCHE
SORTIERUNG
.
391
8.7.4
FREIE
FUNKTIONEN
STATT
ELEMENTFUNKTIONEN
.
392
8.8
NEW
UND
DELETE
UEBERLADEN
.
393
8.8.1
UNTERSCHEIDUNG
ZWISCHEN
HEAP-
UND
STACK-OBJEKTEN
.
397
8.8.2
EMPFEHLUNGEN
IM
UMGANG
MIT
NEW
UND
DELETE
.
399
8.9
OPERATOREN
FUER
LITERALE
.
399
INHALT
11
8.9.1
STRINGLITERALE
.
400
8.9.2
BENUTZERDEFINIERTE
LITERALE
.
401
8.10
OPERATOREN
[]
UND
()
FUER
MATRIZEN
.
403
8.10.1
ZWEIDIMENSIONALE
MATRIX
ALS
VEKTOR
VON
VEKTOREN
.
404
8.10.2
ZWEIDIMENSIONALE
MATRIX
MIT
ZUSAMMENHAENGENDEM
SPEICHER
.
406
8.11
ZUWEISUNG
UND
VERGLEICH
BEI
VERERBUNG
.
409
8.11.1
POLYMORPHER
VERGLEICH
.
410
8.11.2
KOPIE
MIT
CLONE()-METHODE
ERZEUGEN
.
410
8.11.3
KOPIE
MIT
ZUWEISUNGSOPERATOR
ERZEUGEN
.
410
9
DATEIEN
UND
STROEME
.
413
9.1
EINGABE
.
415
9.2
AUSGABE
.
417
9.3
FORMATIERUNG
MIT
STD::FORMAT
.
419
9.3.1
SYNTAX
FUER
PLATZHALTER
.
419
9.3.2
FORMATIERUNG
EIGENER
DATENTYPEN
.
423
9.4
FORMATIERUNG
MIT
FLAGS
.
424
9.5
FORMATIERUNG
MIT
MANIPULATOREN
.
427
9.5.1
EIGENE
MANIPULATOREN
.
433
9.6
FEHLERBEHANDLUNG
.
434
9.7
TYPUMWANDLUNG
VON
DATEIOBJEKTEN
NACH
BOOL
.
436
9.8
ARBEIT
MIT
DATEIEN
.
437
9.8.1
POSITIONIERUNG
IN
DATEIEN
.
438
9.8.2
LESEN
UND
SCHREIBEN
IN
DERSELBEN
DATEI
.
438
9.9
UMLEITUNG
AUF
STRINGS
.
439
9.10
FORMATIERTE
DATEN
LESEN
.
440
9.10.1
EINGABE
BENUTZERDEFINIERTER
TYPEN
.
440
9.11
BLOCKWEISE
LESEN
UND
SCHREIBEN
.
442
9.11.1
VECTOR-OBJEKT
BINAER
LESEN
UND
SCHREIBEN
.
442
9.11.2
ARRAY-OBJEKT
BINAER
LESEN
UND
SCHREIBEN
.
444
9.11.3
MATRIX
BINAER
LESEN
UND
SCHREIBEN
.
445
10
DIE
STANDARD
TEMPLATE
LIBRARY
(STL)
.
447
10.1
CONTAINER,
ITERATOREN,
ALGORITHMEN
.
448
10.2
ITERATOREN
IM
DETAIL
.
453
10.3
BEISPIEL
VERKETTETE
LISTE
.
455
10.4
BEREICHE
(RANGES)
.
459
12
INHALT
TEIL
II:
FORTGESCHRITTENE
THEMEN
.
463
11
PERFORMANCE,
WERT-
UND
REFERENZSEMANTIK
.
465
11.1
PERFORMANCEPROBLEM
WERTSEMANTIK
.
467
11.1.1
AUSLASSEN
DER
KOPIE
.
467
11.1.2
TEMPORAERE
OBJEKTE
BEI
DER
ZUWEISUNG
.
468
11.2
REFERENZSEMANTIK
FUER
R-WERTE
.
469
11.2.1
KATEGORIEN
VON
AUSDRUECKEN
.
469
11.2.2
REFERENZEN
AUF
R-
UND
L-WERTE
.
470
11.2.3
AUSWERTUNG
VON
REFERENZEN
AUF
R-WERTE
.
471
11.3
OPTIMIERUNG
DURCH
REFERENZSEMANTIK
FUER
R-WERTE
.
472
11.3.1
BEWEGENDER
KONSTRUKTOR
.
475
11.3.2
BEWEGENDER
ZUWEISUNGSOPERATOR
.
475
11.4
DIE
MOVE()-FUNKTION
.
476
11.5
REFERENZEN
AUF
R-WERTE
UND
TEMPLATE-PARAMETER
.
478
11.5.1
AUSWERTUNG
VON
TEMPLATE-PARAMETERN
-
EIN
UEBERBLICK
.
479
11.6
EIN
EFFIZIENTER
BINAERER
PLUSOPERATOR
.
480
11.6.1
ELIMINIEREN
AUCH
DES
BEWEGENDEN
KONSTRUKTORS
.
481
11.6.2
KOPIEN
TEMPORAERER
OBJEKTE
ELIMINIEREN
.
482
11.7
RULE
OF
THREE/FIVE/ZERO
.
483
11.7.1
RULE
OF
THREE
.
483
11.7.2
RULE
OF
FIVE
.
483
11.7.3
RULE
OF
ZERO
.
484
12
LAMBDA-FUNKTIONEN
.
485
12.1
EIGENSCHAFTEN
.
486
12.1.1
AEQUIVALENZ
ZUM
FUNKTIONSZEIGER
.
487
12.1.2
LAMBDA-FUNKTION
UND
KLASSE
.
488
12.2
GENERISCHE
LAMBDA-FUNKTIONEN
.
489
12.2.1
GENERISCHE
LAMBDA-FUNKTIONEN
MIT
TEMPLATES
.
490
12.3
PARAMETERERFASSUNG
MIT
0
.
491
13
METAPROGRAMMIERUNG
MIT
TEMPLATES
.
493
13.1
GRUNDLAGEN
.
494
13.2
VARIADIC
TEMPLATES:
TEMPLATES
MIT
VARIABLER
PARAMETERZAHL
.
497
13.2.1
ABLAUF
DER
AUSWERTUNG
DURCH
DEN
COMPILER
.
497
13.2.2
ANZAHL
DER
PARAMETER
.
499
13.2.3
PARAMETEREXPANSION
.
499
INHALT
13
13.3
FOLD-EXPRESSIONS
.
501
13.3.1
WEITERE
VARIANTEN
.
502
13.3.2
FOLD-EXPRESSION
MIT
KOMMAOPERATOR
.
503
13.4
KLASSEN-TEMPLATE
MIT
VARIABLER
STELLIGKEIT
.
505
13.5
TYPE
TRAITS
.
505
13.5.1
WIE
FUNKTIONIEREN
TYPE
TRAITS?
*
EIN
BEISPIEL
.
506
13.5.2
ABFRAGE
VON
EIGENSCHAFTEN
.
509
13.5.3
ABFRAGE
NUMERISCHER
EIGENSCHAFTEN
.
511
13.5.4
TYPUMWANDLUNGEN
.
511
13.5.5
AUSWAHL
WEITERER
TRAITS
.
512
13.6
CONCEPTS
.
514
14
REGULAERE
AUSDRUECKE
.
519
14.1
ELEMENTE
REGULAERER
AUSDRUECKE
.
520
14.1.1
GREEDY
ODER
LAZY?
.
522
14.2
INTERAKTIVE
AUSWERTUNG
.
524
14.3
AUSZUG
DER
REGEX-SCHNITTSTELLE
.
527
14.4
VERARBEITUNG
VON
\N
.
528
14.5
ANWENDUNGEN
.
530
15
THREADS
UND
COROUTINEN
.
531
15.1
ZEIT
UND
DAUER
.
532
15.2
THREADS
.
533
15.2.1
AUTOMATISCH
JOIN()
.
537
15.3
DIE
KLASSE
JTHREAD
.
538
15.3.1
UEBERGABE
EINES
FUNKTORS
.
540
15.3.2
THREAD-GROUP
.
542
15.4
SYNCHRONISATION
KRITISCHER
ABSCHNITTE
.
543
15.4.1
DATA
RACE
ERKENNEN
.
546
15.5
THREAD-STEUERUNG:
PAUSIEREN,
FORTSETZEN,
BEENDEN
.
546
15.6
WARTEN
AUF
EREIGNISSE
.
550
15.7
ATOMARE
VERAENDERUNG
VON
VARIABLEN
.
556
15.8
ASYNCHRONE
VERTEILTE
BEARBEITUNG
EINER
AUFGABE
.
559
15.8.1
FUTURE
UND
ASYNC
.
559
15.8.2
PACKAGED_TASK
UND
FUTURE
.
561
15.8.3
PROMISE
UND
FUTURE
.
562
15.9
THREAD-SICHERHEIT
.
563
15.10
COROUTINEN
.
564
14
INHALT
16
GRAFISCHE
BENUTZUNGSSCHNITTSTELLEN
.
569
16.1
EREIGNISGESTEUERTE
PROGRAMMIERUNG
.
570
16.2
GUI-PROGRAMMIERUNG
MIT
QT
.
571
16.2.1
INSTALLATION
UND
EINSATZ
.
571
16.2.2
META-OBJEKTSYSTEM
.
572
16.2.3
DER
PROGRAMMABLAUF
.
573
16.2.4
EREIGNIS
AB
FRAGEN
.
574
16.3
SIGNALE,
SLOTS
UND
WIDGETS
.
575
16.4
DIALOG
.
584
16.5
QT
ODER
STANDARD-C++?
.
587
16.5.1
THREADS
.
587
16.5.2
VERZEICHNISBAUM
DURCHWANDERN
.
589
17
INTERNET-ANBINDUNG
.
591
17.1
PROTOKOLLE
.
592
17.2
ADRESSEN
.
592
17.3
SOCKET
.
595
17.3.1
BIDIREKTIONALE
KOMMUNIKATION
.
598
17.3.2
UDP-SOCKETS
.
600
17.3.3
ATOMUHR
MIT
UDP
ABFRAGEN
.
601
17.4
HTTP.
604
17.4.1
VERBINDUNG
MIT
GET
.
605
17.4.2
VERBINDUNG
MIT
POST
.
610
17.5
MINI-WEBSERVER
.
611
18
DATENBANKANBINDUNG
.621
18.1
C++-INTERFACE
.
622
18.2
ANWENDUNGSBEISPIEL
.
625
TEIL
III:
AUSGEWAEHLTE
METHODEN
UND
WERKZEUGE
DER
SOFTWAREENTWICKLUNG
.
631
19
EFFIZIENTE
PROGRAMMERZEUGUNG
MIT
MAKE
.
633
19.1
WIRKUNGSWEISE
.
634
19.2
VARIABLEN
UND
MUSTER
.
636
19.3
UNIVERSELLES
MAKEFILE
FUER
EINFACHE
PROJEKTE
.
638
19.4
AUTOMATISCHE
ERMITTLUNG
VON
ABHAENGIGKEITEN
.
639
19.4.1
MAKEFILES
FUER
VERSCHIEDENE
BETRIEBSSYSTEME
UND
COMPILER
.
641
INHALT
15
19.4.2
GETRENNTE
VERZEICHNISSE:
SRC,
OBJ,
BIN
.
642
19.5
MAKEFILE
FUER
VERZEICHNISBAEUME
.
643
19.5.1
NUR
EIN
MAKEFILE
AUF
PROJEKTEBENE
.
645
19.5.2
REKURSIVE
MAKE-AUFRUFE
.
646
19.6
ERZEUGEN
VON
BIBLIOTHEKEN
.
648
19.6.1
STATISCHE
BIBLIOTHEKSMODULE
.
648
19.6.2
DYNAMISCHE
BIBLIOTHEKSMODULE
.
650
19.7
WEITERE
BUILD-TOOLS
.
653
20
UNIT-TEST
.
655
20.1
WERKZEUGE
.
656
20.2
TEST
DRIVEN
DEVELOPMENT
.
657
20.3
BOOST
UNIT
TEST
FRAMEWORK
.
658
20.3.1
BEISPIEL:
TESTGETRIEBENE
ENTWICKLUNG
EINER
OPERATORFUNKTION
.
660
20.3.2
FIXTURE
.
665
20.3.3
TESTPROTOKOLL
UND
LOG-LEVEL
.
666
20.3.4
PRUEF-MAKROS
.
667
20.3.5
KOMMANDOZEILEN-OPTIONEN
.
671
TEIL
IV:
DAS
C++-REZEPTBUCH:
TIPPS
UND
LOESUNGEN
FUER
TYPISCHE
AUFGABEN
.
673
21
SICHERE
PROGRAMMENTWICKLUNG
.
675
21.1
REGELN
ZUM
DESIGN
VON
METHODEN
.
675
21.2
DEFENSIVE
PROGRAMMIERUNG
.
677
21.2.1
DOUBLE-
UND
FLOAT-WERTE
RICHTIG
VERGLEICHEN
.
678
21.2.2
CONST
UND
CONSTEXPR
VERWENDEN
.
679
21.2.3
ANWEISUNGEN
NACH
FOR/IF/WHILE
EINKLAMMEM
.
679
21.2.4
INT
UND
UNSIGNED/SIZE_T
NICHT
MISCHEN
.
679
21.2.5
SIZE_T
ODER
AUTO
STATT
UNSIGNED
INT
VERWENDEN
.
679
21.2.6
POSTFIX++
MIT
PRAEFIX++
IMPLEMENTIEREN
.
680
21.2.7
EIN
DESTRUKTOR
DARF
KEINE
EXCEPTION
WERFEN
.
681
21.2.8
EXPLICIT-TYPUMWANDLUNGSOPERATOR
BEVORZUGEN
.
681
21.2.9
EXPLICIT-KONSTRUKTOR
FUER
EINE
TYPUMWANDLUNG
BEVORZUGEN
.
681
21.2.10
LEERE
STANDARDKONSTRUKTOREN
VERMEIDEN
.
681
21.2.11
MIT
OVERRIDE
SCHREIBFEHLER
REDUZIEREN
.
681
21.2.12
KOPIEREN
UND
ZUWEISUNG
VERBIETEN
.
682
16
INHALT
21.2.13
VERERBUNG
VERBIETEN
.
682
21.2.14
UEBERSCHREIBEN
EINER
VIRTUELLEN
METHODE
VERHINDERN
.
682
21.2.15
RULE
OF
ZERO
BEACHTEN
.
683
21.2.16
ONE
DEFINITION
RULE
.
683
21.2.17
DEFENSIV
OBJEKTE
LOESCHEN
.
683
21.2.18
SPEICHERBESCHAFFUNG
UND
-FREIGABE
KAPSELN
.
684
21.2.19
PROGRAMMIERRICHTLINIENEINHALTEN
.
684
21.3
EXCEPTION-SICHERE
BESCHAFFUNG
VON
RESSOURCEN
.
684
21.3.1
SICHERE
VERWENDUNG
VON
UNIQUE_PTR
UND
SHARED_PTR
.
684
21.3.2
SO
VERMEIDEN
SIE
NEW
UND
DELETE!
.
685
21.3.3
SHARED_PTR
FUER
ARRAYS
KORREKT
VERWENDEN
.
685
21.3.4
UNIQUE_PTR
FUER
ARRAYS
KORREKT
VERWENDEN
.
687
21.3.5
EXCEPTION-SICHERE
FUNKTION
.
687
21.3.6
EXCEPTION-SICHERER
KONSTRUKTOR
.
688
21.3.7
EXCEPTION-SICHERE
ZUWEISUNG
.
689
21.4
EMPFEHLUNGEN
ZUR
THREAD-PROGRAMMIERUNG
.
689
21.4.1
WARTEN
AUF
DIE
FREIGABE
VON
RESSOURCEN
.
689
21.4.2
DEADLOCK-VERMEIDUNG
.
690
21.4.3
NOTIFY_ALL
ODER
NOTIFY_ONE?
.
691
21.4.4
PERFORMANCE
MIT
THREADS
VERBESSERN?
.
691
22
VON
DER
UML
NACH
C++
.
693
22.1
VERERBUNG
.
694
22.2
INTERFACE
ANBIETEN
UND
NUTZEN
.
694
22.3
ASSOZIATION
.
696
22.3.1
AGGREGATION
.
699
22.3.2
KOMPOSITION
.
700
23
ALGORITHMEN
FUER
VERSCHIEDENE
AUFGABEN
.
701
23.1
ALGORITHMEN
MIT
STRINGS
.
702
23.1.1
STRING
SPLITTEN
.
702
23.1.2
STRING
IN
ZAHL
UMWANDELN
.
703
23.1.3
ZAHL
IN
STRING
UMWANDELN
.
706
23.1.4
STRINGS
SPRACHLICH
RICHTIG
SORTIEREN
.
706
23.1.5
UMWANDLUNG
IN
KLEIN-
BZW.
GROSSSCHREIBUNG
.
708
23.1.6
STRINGS
SPRACHLICH
RICHTIG
VERGLEICHEN
.
709
23.1.7
VON
DER
GROSS-/KLEINSCHREIBUNG
UNABHAENGIGER
ZEICHENVERGLEICH
.
710
23.1.8
VON
DER
GROSS-/KLEINSCHREIBUNG
UNABHAENGIGE
SUCHE
.
710
INHALT
17
23.2
TEXTVERARBEITUNG
.
712
23.2.1
DATEI
DURCHSUCHEN
.
712
23.2.2
ERSETZUNGEN
IN
EINER
DATEI
.
713
23.2.3
LINES
OF
CODE
(LOC)
ERMITTELN
.
715
23.2.4
ZEILEN,
WOERTER
UND
ZEICHEN
EINER
DATEI
ZAEHLEN
.
717
23.2.5
CSV-DATEI
LESEN
.
717
23.2.6
KREUZREFERENZLISTE
.
718
23.3
OPERATIONEN
AUF
FOLGEN
.
720
23.3.1
VEREINFACHUNGEN
.
720
23.3.2
FOLGE
MIT
GLEICHEN
WERTEN
INITIALISIEREN
.
722
23.3.3
FOLGE
MIT
WERTEN
EINES
GENERATORS
INITIALISIEREN
.
723
23.3.4
FOLGE
MIT
FORTLAUFENDEN
WERTEN
INITIALISIEREN
.
723
23.3.5
SUMME
UND
PRODUKT
.
724
23.3.6
MITTELWERT
UND
STANDARDABWEICHUNG
.
725
23.3.7
SKALARPRODUKT
.
726
23.3.8
FOLGE
DER
TEILSUMMEN
ODER
-PRODUKTE
.
727
23.3.9
FOLGE
DER
DIFFERENZEN
.
728
23.3.10
KLEINSTES
UND
GROESSTES
ELEMENT
FINDEN
.
730
23.3.11
ELEMENTE
ROTIEREN
.
731
23.3.12
ELEMENTE
VERWUERFELN
.
732
23.3.13
DUBLETTEN
ENTFERNEN
.
733
23.3.14
REIHENFOLGE
UMDREHEN
.
735
23.3.15
STICHPROBE
.
736
23.3.16
ANZAHL
DER
ELEMENTE,
DIE
EINER
BEDINGUNG
GENUEGEN
.
737
23.3.17
GILT
EIN
PRAEDIKAT
FUER
ALLE,
KEIN
ODER
WENIGSTENS
EIN
ELEMENT
EINER
FOLGE?
.
738
23.3.18
PERMUTATIONEN
.
739
23.3.19
LEXIKOGRAFISCHER
VERGLEICH
.
742
23.4
SORTIEREN
UND
VERWANDTES
.
744
23.4.1
PARTITIONIEREN
.
744
23.4.2
SORTIEREN
.
747
23.4.3
STABILES
SORTIEREN
.
747
23.4.4
PARTIELLES
SORTIEREN
.
749
23.4.5
DAS
N.-GROESSTE
ODER
N.-KLEINSTE
ELEMENT
FINDEN
.
750
23.4.6
VERSCHMELZEN
(MERGE)
.
752
23.5
SUCHEN
UND
FINDEN
.
754
23.5.1
ELEMENT
FINDEN
.
754
23.5.2
ELEMENT
EINER
MENGE
IN
DER
FOLGE
FINDEN
.
755
18
INHALT
23.5.3
TEILFOLGE
FINDEN
.
756
23.5.4
TEILFOLGE
MIT
SPEZIELLEM
ALGORITHMUS
FINDEN
.
758
23.5.5
BESTIMMTE
BENACHBARTE
ELEMENTE
FINDEN
.
759
23.5.6
BESTIMMTE
AUFEINANDERFOLGENDE
WERTE
FINDEN
.
760
23.5.7
BINAERE
SUCHE
.
761
23.6
MENGENOPERATIONEN
AUF
SORTIERTEN
STRUKTUREN
.
764
23.6.1
TEILMENGENRELATION
.
764
23.6.2
VEREINIGUNG
.
765
23.6.3
SCHNITTMENGE
.
766
23.6.4
DIFFERENZ
.
767
23.6.5
SYMMETRISCHE
DIFFERENZ
.
768
23.7
HEAP-ALGORITHMEN
.
768
23.7.1
POP_HEAP
.
770
23.7.2
PUSH_HEAP
.
771
23.7.3
MAKE_HEAP
.
771
23.7.4
SORT_HEAP
.
772
23.7.5
IS_HEAP
.
772
23.8
VERGLEICH
VON
CONTAINERN
AUCH
UNGLEICHEN
TYPS
.
773
23.8.1
UNTERSCHIEDLICHE
ELEMENTE
FINDEN
.
773
23.8.2
PRUEFUNG
AUF
GLEICHE
INHALTE
.
775
23.9
RECHNEN
MIT
KOMPLEXEN
ZAHLEN:
DER
C++-
STANDARDTYP
COMPLEX
.
776
23.10
VERMISCHTES
.
778
23.10.1
ERKENNUNG
EINES
DATUMS
.
778
23.10.2
ERKENNUNG
EINER
IPV4-ADRESSE
.
780
23.10.3
ERZEUGEN
VON
ZUFALLSZAHLEN
.
781
23.10.4
FOR_EACH
-
AUF
JEDEM
ELEMENT
EINE
FUNKTION
AUSFUEHREN
.
786
23.10.5
VERSCHIEDENE
MOEGLICHKEITEN,
CONTAINER-BEREICHE
ZU
KOPIEREN
.
787
23.10.6
VERTAUSCHEN
VON
ELEMENTEN,
BEREICHEN
UND
CONTAINERN
.
790
23.10.7
ELEMENTE
TRANSFORMIEREN
.
791
23.10.8
ERSETZEN
UND
VARIANTEN
.
792
23.10.9
ELEMENTE
HERAUSFILTEM
.
794
23.10.10
GRENZWERTE
VON
ZAHLTYPEN
.
795
23.10.11
MINIMUM
UND
MAXIMUM
.
796
23.10.12
WERT
BEGRENZEN
.
798
23.10.13
GGT,
KGV
UND
MITTE
.
799
23.11
PARALLELISIERBARE
ALGORITHMEN
.
800
INHALT
19
24
DATEI-
UND
VERZEICHNISOPERATIONEN
.
803
24.1
UEBERSICHT
.
804
24.2
PFADOPERATIONEN
.
805
24.3
DATEI
ODER
VERZEICHNIS
LOESCHEN
.
806
24.4
DATEI
ODER
VERZEICHNIS
KOPIEREN
.
808
24.5
VERZEICHNIS
ANLEGEN
.
809
24.6
DATEI
ODER
VERZEICHNIS
UMBENENNEN
.
810
24.7
VERZEICHNIS
ANZEIGEN
.
811
24.8
VERZEICHNISBAUM
ANZEIGEN
.
812
TEIL
V:
DIE
C++-STANDARDBIBLIOTHEK
.
813
25
AUFBAU
UND
UEBERSICHT
.
815
25.1
AUSLASSUNGEN
.
817
25.2
BEISPIELE
DES
BUCHS
UND
DIE
C++-STANDARDBIBLIOTHEK
.
819
26
HILFSFUNKTIONEN
UND
-KLASSEN
.
821
26.1
UNTERSTUETZUNG
DER
REFERENZSEMANTIK
FUER
R-WERTE
.
821
26.2
PAARE
.
823
26.3
TUPEL
.
825
26.4
BITSET
.
827
26.5
INDEXFOLGEN
.
830
26.6
VARIANT
STATT
UNION
.
831
26.7
FUNKTIONSOBJEKTE
.
832
26.7.1
ARITHMETISCHE,
VERGLEICHENDE
UND
LOGISCHE
OPERATIONEN
.
832
26.7.2
BINDEN
VON
ARGUMENTWERTEN
.
833
26.7.3
FUNKTIONEN
IN
OBJEKTE
UMWANDELN
.
835
26.8
TEMPLATES
FUER
RATIONALE
ZAHLEN
.
837
26.9
HUELLKLASSE
FUER
REFERENZEN
.
838
26.10
OPTIONALE
OBJEKTE
.
839
27
CONTAINER
.
841
27.1
GEMEINSAME
EIGENSCHAFTEN
.
843
27.1.1
REVERSIBLE
CONTAINER
.
845
27.1.2
INITIALISIERUNGSLISTE
(INITIALIZER_LIST)
.
846
27.1.3
KONSTRUKTION
AN
ORT
UND
STELLE
.
847
27.2
SEQUENZEN
.
848
27.2.1
VECTOR
.
849
20
INHALT
27.2.2
VECTOR BOOL
.
850
27.2.3
ARRAY
.
851
27.2.4
LIST
.
854
27.2.5
DEQUE
.
856
27.3
CONTAINER-ADAPTER
.
858
27.3.1
STACK
.
858
27.3.2
QUEUE
.
859
27.3.3
PRIORITY_QUEUE
.
860
27.4
ASSOZIATIVE
CONTAINER
.
862
27.4.1
SORTIERTE
ASSOZIATIVE
CONTAINER
.
864
27.4.2
HASH-CONTAINER
.
872
27.5
SICHT
AUF
CONTAINER
(SPAN)
.
879
28
ITERATOREN
.
881
28.1
ITERATOR-KATEGORIEN
.
882
28.1.1
ANWENDUNG
VON
TRAITS
.
884
28.2
ABSTAND
UND
BEWEGEN
.
887
28.3
ZUGRIFF
AUF
ANFANG
UND
ENDE
.
888
28.3.1
REVERSE-ITERATOREN
.
889
28.4
INSERT-ITERATOREN
.
890
28.5
STREAM-ITERATOREN
.
892
29
ALGORITHMEN
.
895
29.1
ALGORITHMEN
MIT
PRAEDIKAT
.
896
29.2
UEBERSICHT
.
897
30
NATIONALE
BESONDERHEITEN
.
901
30.1
SPRACHUMGEBUNG
FESTLEGEN
UND
AENDERN
.
902
30.1.1
DIE
LOCALE-FUNKTIONEN
.
903
30.2
ZEICHENSAETZE
UND
-CODIERUNG
.
904
30.3
ZEICHENKLASSIFIZIERUNG
UND
-UMWANDLUNG
.
909
30.4
KATEGORIEN
.
910
30.4.1
COLLATE
.
910
30.4.2
CTYPE
.
911
30.4.3
NUMERIC
.
912
30.4.4
MONETARY
.
914
30.4.5
TIME
.
917
30.4.6
MESSAGES
.
919
INHALT
21
30.5
KONSTRUKTION
EIGENER
FACETTEN
.
921
31
STRING
.
923
31.1
STRING_VIEW
FUER
STRING-LITERALE
.
933
32
SPEICHERMANAQEMENT
.
935
32.1
UNIQUE_PTR
.
935
32.2
SHARED_PTR
.
938
32.3
WEAK_PTR
.
940
32.4
NEW
MIT
SPEICHERORTANGABE
.
941
33
AUSGEWAEHLTE
C-HEADER
.
943
33.1
CASSERT
.
943
33.2
CCTYPE
.
944
33.3
CMATH
.
945
33.4
CSTDDEF
.
946
33.5
CSTDLIB
.
946
33.6
CSTRING
.
947
33.7
CTIME
.
949
A
ANHANG
.
951
A.1
ASCII-TABELLE.
951
A.2
C++-SCHLUESSELWOERTER
.
953
A.3
COMPILERBEFEHLE
.
954
A.4
RANGFOLGE
DER
OPERATOREN
.
955
A.5
C++-ATTRIBUTE
FUER
DEN
COMPILER
.
957
A.6
LOESUNGEN
ZU
DEN
UEBUNGSAUFGABEN
.
957
A.7
AENDERUNGEN
IN
DER
6.
AUFLAGE
.
967
GLOSSAR
.
969
LITERATURVERZEICHNIS
.
979
REGISTER
983 |
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 | BV046939973 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)1200308050 (DE-599)DNB1210296543 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 6., überarbeitete Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02318nam a22005778c 4500</leader><controlfield tag="001">BV046939973</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20210304 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">201014s2020 gw |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">20,N21</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1210296543</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783446463868</subfield><subfield code="c">hbk. : circa EUR 39.99 (DE), circa EUR 41.20 (AT)</subfield><subfield code="9">978-3-446-46386-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3446463860</subfield><subfield code="9">3-446-46386-0</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783446463868</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1200308050</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1210296543</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-860</subfield><subfield code="a">DE-210</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-12</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-1046</subfield><subfield code="a">DE-91</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-29T</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">004</subfield><subfield code="2">sdnb</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="240" ind1="1" ind2="0"><subfield code="a">Der C++-Programmierer</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="250" ind1=" " ind2=" "><subfield code="a">6., überarbeitete Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">München</subfield><subfield code="b">Carl Hanser Verlag</subfield><subfield code="c">[2020]</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2020</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1007 Seiten</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++ 20</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="650" ind1="0" ind2="7"><subfield code="a">C++20</subfield><subfield code="0">(DE-588)1221726668</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="653" ind1=" " ind2=" "><subfield code="a">C++ 20</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="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++20</subfield><subfield code="0">(DE-588)1221726668</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" 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-46551-0</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-46470-4</subfield></datafield><datafield tag="780" ind1="0" ind2="0"><subfield code="i">Vorangegangen ist</subfield><subfield code="a">Breymann, Ulrich</subfield><subfield code="t">Der C++-Programmierer</subfield><subfield code="b">5., überarbeitete Auflage</subfield><subfield code="d">2018</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</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=032348711&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032348711</subfield></datafield></record></collection> |
id | DE-604.BV046939973 |
illustrated | Not Illustrated |
index_date | 2024-07-03T15:37:46Z |
indexdate | 2024-07-10T08:58:04Z |
institution | BVB |
isbn | 9783446463868 3446463860 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032348711 |
oclc_num | 1200308050 |
open_access_boolean | |
owner | DE-860 DE-210 DE-B768 DE-1050 DE-12 DE-706 DE-92 DE-19 DE-BY-UBM DE-523 DE-859 DE-1046 DE-91 DE-BY-TUM DE-739 DE-473 DE-BY-UBG DE-29T |
owner_facet | DE-860 DE-210 DE-B768 DE-1050 DE-12 DE-706 DE-92 DE-19 DE-BY-UBM DE-523 DE-859 DE-1046 DE-91 DE-BY-TUM DE-739 DE-473 DE-BY-UBG DE-29T |
physical | 1007 Seiten 25 cm |
publishDate | 2020 |
publishDateSearch | 2020 |
publishDateSort | 2020 |
publisher | Carl Hanser Verlag |
record_format | marc |
spelling | Breymann, Ulrich 1949- Verfasser (DE-588)121409740 aut Der C++-Programmierer C++ programmieren C++ lernen - professionell anwenden - Lösungen nutzen Ulrich Breymann 6., überarbeitete Auflage München Carl Hanser Verlag [2020] © 2020 1007 Seiten 25 cm txt rdacontent n rdamedia nc rdacarrier auf dem Umschlag: aktuell zu C++ 20 C++ (DE-588)4193909-8 gnd rswk-swf C++20 (DE-588)1221726668 gnd rswk-swf Programmierung (DE-588)4076370-5 gnd rswk-swf C++ 20 Programmiersprache Programmierung FBITPRCC: C/C++ C++ (DE-588)4193909-8 s Programmierung (DE-588)4076370-5 s DE-604 C++20 (DE-588)1221726668 s Erscheint auch als Online-Ausgabe 978-3-446-46551-0 Erscheint auch als Online-Ausgabe, EPUB 978-3-446-46470-4 Vorangegangen ist Breymann, Ulrich Der C++-Programmierer 5., überarbeitete Auflage 2018 DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032348711&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Breymann, Ulrich 1949- C++ programmieren C++ lernen - professionell anwenden - Lösungen nutzen C++ (DE-588)4193909-8 gnd C++20 (DE-588)1221726668 gnd Programmierung (DE-588)4076370-5 gnd |
subject_GND | (DE-588)4193909-8 (DE-588)1221726668 (DE-588)4076370-5 |
title | C++ programmieren C++ lernen - professionell anwenden - Lösungen nutzen |
title_alt | Der C++-Programmierer |
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_old | Breymann, Ulrich Der C++-Programmierer |
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++ (DE-588)4193909-8 gnd C++20 (DE-588)1221726668 gnd Programmierung (DE-588)4076370-5 gnd |
topic_facet | C++ C++20 Programmierung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=032348711&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT breymannulrich dercprogrammierer AT breymannulrich cprogrammierenclernenprofessionellanwendenlosungennutzen |