Torsten T. Will

Einführung in C++

Einstieg in die moderne Programmierung mit C++ / Setzt keine Programmier-oder C-Kenntnisse voraus / Inkl.Objektorientierung, Standardbibliothek, Zeiger u.v.m. 24,6 cm / 17,4 cm / 3,2 cm ( B/H/T )
Buch (Hardcover), 520 Seiten
EAN 9783836226776
Veröffentlicht Oktober 2014
Verlag/Hersteller Rheinwerk Verlag GmbH
24,90 inkl. MwSt.
Mit click & collect bis 16:00 Uhr bestellen und direkt am folgenden Werktag abholen.
Sofort lieferbar (Versand mit Deutscher Post/DHL)
Teilen
Beschreibung

Ohne Umwege und ohne Vorkenntnisse lernen Sie, in C++ zu programmieren - und zwar ganz nebenbei so, wie es aktuelle Profi-Praxis ist. Der vermeintlichen Dinosaurier unter den objektorientierten Sprachen hat neue Standards und moderne Programmierwerkzeuge zu bieten. Lernen Sie hier, damit umzugehen. Lassen Sie sich in der C++-Welt an die Hand nehmen. Ob es um einfache Variablen oder anonyme Funktionen geht - unser Autor führt Sie an allen Fallstricken vorbei und erläutert Fachbegriffe und Best Practices zu den Grundlagen genauso wie zu professionellen Themen.
Aus dem Inhalt:

  • Ausdrücke und Anweisungen
  • Werte und Datentypen
  • Ablaufkontrolle
  • Algorithmen und Komplexität
  • Compiler, IDE und Konsole
  • Vererbung, Aggregation, Design Patterns
  • Heap und Stack verstehen
  • Dateizugriffe und Streams
  • Lebenszyklen und Zugriffskontrolle


Portrait

Torsten T. Will, Jahrgang 1970, beschäftigte sich bereits während seines Diploms in Informatik mit Programmiersprachen und ihren Konzepten. C++ hat ihn schon in seinen Anfängen fasziniert und begleitet. Andere Programmierprojekte bewältigte er vor allem in Pascal, Java, Scala und Python. Seit 2004 schreibt er im Fachmagazin c't gelegentlich über C++ und Python. Was dann noch an Zeit übrig bleibt, geht in die Fotografie.

Inhaltsverzeichnis


Geleitwort des Fachgutachters ... 18
Vorwort ... 20
TEIL I Erste Schritte ... 23
1. Über dieses Buch ... 25
1.1 ... Der C++-Standard ... 26
1.2 ... Verwendete Formatierungen ... 27
2. Vom Problem zum Programm ... 29
2.1 ... Was ist Programmieren? ... 30
2.2 ... Softwareentwicklungsmethoden ... 30
2.3 ... Entwurfsmuster ... 32
2.4 ... Algorithmen ... 33
2.5 ... Ressourcen ... 34
3. Programmieren in C++ ... 36
3.1 ... Übersetzen ... 37
3.2 ... Aktuelle Compiler ... 37
3.3 ... Entwicklungsumgebungen ... 39
3.4 ... Die Kommandozeile unter Ubuntu ... 41
3.5 ... Die IDE 'Microsoft Visual Studio Express' unter Windows ... 44
3.6 ... Schneller ... 47
3.7 ... Aufgaben ... 47
4. Ein ganz schneller Überblick ... 49
4.1 ... Kommentare ... 50
4.2 ... Die 'include'-Direktive ... 50
4.3 ... Die Standardbibliothek ... 51
4.4 ... Die Funktion 'main()' ... 51
4.5 ... Typen ... 51
4.6 ... Variablen ... 52
4.7 ... Initialisierung ... 52
4.8 ... Ausgabe auf der Konsole ... 53
4.9 ... Anweisungen ... 53
4.10 ... Aufgaben ... 54
5. Ohne Eile erklärt ... 56
5.1 ... Leerräume, Bezeichner und Token ... 58
5.2 ... Kommentare ... 59
5.3 ... Funktionen und Argumente ... 60
5.4 ... Seiteneffekt-Operatoren ... 61
5.5 ... Die 'main'-Funktion ... 62
5.6 ... Anweisungen ... 64
5.7 ... Ausdrücke ... 66
5.8 ... Zuweisungen ... 68
5.9 ... Typen ... 69
5.10 ... Variablen -- Deklaration, Definition und Initialisierung ... 74
5.11 ... Details zur 'include'-Direktive ... 75
5.12 ... Eingabe und Ausgabe ... 76
5.13 ... Der Namensraum 'std' ... 77
5.14 ... Aufgaben ... 79
6. Programmiertechnik, 1. Dan: Lesbarer Code ... 81
6.1 ... Kommentare ... 81
6.2 ... Dokumentation ... 82
6.3 ... Einrückungen und Zeilenlänge ... 83
6.4 ... Zeilen pro Funktion und Datei ... 84
6.5 ... Klammern und Leerzeichen ... 84
6.6 ... Namen ... 86
TEIL II Die Elemente von C++ ... 87
7. Operatoren ... 89
7.1 ... Operatoren und Operanden ... 90
7.2 ... Überblick über Operatoren ... 90
7.3 ... Arithmetische Operatoren ... 91
7.4 ... Bitweise Arithmetik ... 92
7.5 ... Zuweisungsoperatoren ... 93
7.6 ... Post- und Präinkrement sowie Post- und Prädekrement ... 94
7.7 ... Relationale Operatoren ... 95
7.8 ... Logische Operatoren ... 95
7.9 ... Pointer- und Dereferenzierungsoperatoren ... 97
7.10 ... Besondere Operatoren ... 97
7.11 ... Funktionsähnliche Operatoren ... 99
7.12 ... Operatorreihenfolge ... 100
7.13 ... Aufgaben ... 101
8. Eingebaute Typen ... 103
8.1 ... Eingebaute Datentypen ... 105
8.2 ... Eingebaute Datentypen initialisieren ... 105
8.3 ... Ein schneller Überblick ... 106
8.4 ... Ganzzahlen ... 107
8.5 ... Wahrheitswerte ... 118
8.6 ... Zeichentypen ... 119
8.7 ... Aufgaben ... 122
9. Strings und Streams ... 124
9.1 ... Der Zeichenkettentyp 'string' ... 124
9.2 ... Streams ... 129
9.3 ... Eingabe- und Ausgabeoperatoren ... 130
9.4 ... Aufgaben ... 134
10. Behälter und Zeiger ... 135
10.1 ... Parametrisierte Typen ... 136
10.2 ... Die einfachen Sequenzcontainer ... 136
10.3 ... Weitere Container ... 141
10.4 ... Container-Gemeinsamkeiten ... 144
10.5 ... Algorithmen ... 145
10.6 ... Zeiger und C-Arrays ... 146
10.7 ... Aufgaben ... 147
11. Funktionen ... 148
11.1 ... Deklaration und Definition einer Funktion ... 149
11.2 ... Funktionstyp ... 150
11.3 ... Funktionen verwenden ... 150
11.4 ... Eine Funktion definieren ... 151
11.5 ... Mehr zu Parametern ... 152
11.6 ... Funktionskörper ... 156
11.7 ... Parameter umwandeln ... 158
11.8 ... Funktionen überladen ... 160
11.9 ... Default-Parameter ... 162
11.10 ... Beliebig viele Argumente ... 163
11.11 ... Alternative Schreibweise zur Funktionsdeklaration ... 164
11.12 ... Spezialitäten ... 165
11.13 ... Aufgaben ... 167
12. Anweisungen im Detail ... 169
12.1 ... Anweisungsblock ... 171
12.2 ... Die leere Anweisung ... 174
12.3 ... Deklarationsanweisung ... 175
12.4 ... Ausdrucksanweisung ... 176
12.5 ... Die if-Anweisung ... 176
12.6 ... 'while'-Schleife ... 179
12.7 ... 'do-while'-Schleife ... 180
12.8 ... 'for'-Schleife ... 181
12.9 ... Die bereichsbasierte 'for'-Schleife ... 182
12.10 ... Die 'switch'-Verzweigung ... 183
12.11 ... 'break'-Anweisung ... 187
12.12 ... Die 'continue'-Anweisung ... 188
12.13 ... Die 'return'-Anweisung ... 189
12.14 ... Die 'goto'-Anweisung ... 190
12.15 ... 'try-catch'-Block und 'throw' ... 192
12.16 ... Zusammenfassung ... 193
12.17 ... Aufgaben ... 193
13. Ausdrücke im Detail ... 196
13.1 ... Berechnungen und Seiteneffekte ... 197
13.2 ... Arten von Ausdrücken ... 198
13.3 ... Literale ... 199
13.4 ... Bezeichner ... 200
13.5 ... Klammern ... 201
13.6 ... Funktionsaufruf und Index-Zugriff ... 201
13.7 ... Zuweisung ... 201
13.8 ... Typumwandlung ... 203
13.9 ... Aufgaben ... 204
14. Fehlerbehandlung ... 205
14.1 ... Fehlerbehandlung mit Rückgabewerten ... 207
14.2 ... Was ist eine Ausnahme? ... 210
14.3 ... Kleinere Fehlerbehandlungen ... 213
14.4 ... Weiterwerfen -- 'rethrow' ... 213
14.5 ... Die Reihenfolge im 'catch' ... 214
14.6 ... Typen für Exceptions ... 216
14.7 ... Wenn eine Exception aus 'main' herausfällt ... 217
14.8 ... Aufgaben ... 217
15. Programmiertechnik, 2. Dan: Modularisierung ... 219
15.1 ... Programm, Bibliothek, Objektdatei ... 219
15.2 ... Bausteine ... 220
15.3 ... Trennen der Funktionalitäten ... 221
TEIL III Datenstrukturen ... 223
16. Erste eigene Datentypen ... 225
16.1 ... Initialisierung ... 226
16.2 ... Rückgabe eigener Typen ... 227
16.3 ... Methoden statt Funktionen ... 228
16.4 ... Das bessere 'drucke' ... 231
16.5 ... Eine Ausgabe wie jede andere ... 232
16.6 ... Methoden inline definieren ... 233
16.7 ... Implementierung und Definition trennen ... 234
16.8 ... Initialisierung per Konstruktor ... 235
16.9 ... Struktur oder Klasse? ... 241
16.10 ... Zusammenfassung ... 245
16.11 ... Aufgaben ... 245
17. Verwendung eigener Datentypen ... 248
17.1 ... Klassen als Werte verwenden ... 251
17.2 ... Konstruktoren nutzen ... 253
17.3 ... Typumwandlungen ... 254
17.4 ... Kapseln und entkapseln ... 256
17.5 ... Typen lokal einen Namen geben ... 260
17.6 ... Typdeduktion mit 'auto' ... 263
17.7 ... Eigene Klassen in Standardcontainern ... 266
17.8 ... Aufgaben ... 268
18. Namespace und Static ... 270
18.1 ... Der Namensraum 'std' ... 270
18.2 ... Anonymer Namensraum ... 274
18.3 ... 'static' macht lokal ... 275
18.4 ... 'static' teilt gern ... 276
18.5 ... 'static' macht dauerhaft ... 279
18.6 ... Zusammenfassung ... 281
18.7 ... Aufgaben ... 281
19. Const ... 284
19.1 ... Const-Parameter ... 285
19.2 ... Const-Methoden ... 286
19.3 ... Const-Variablen ... 288
19.4 ... Const-Rückgaben ... 289
19.5 ... Const-Korrektheit ... 296
19.6 ... Zusammenfassung ... 297
19.7 ... Aufgaben ... 298
20. Vererbung ... 300
20.1 ... Beziehungen ... 301
20.2 ... Vererbung in C++ ... 303
20.3 ... Hat-ein versus ist-ein ... 304
20.4 ... Gemeinsamkeiten finden ... 304
20.5 ... Abgeleitete Typen erweitern ... 307
20.6 ... Methoden überschreiben ... 308
20.7 ... Wie Methoden funktionieren ... 309
20.8 ... Virtuelle Methoden ... 310
20.9 ... Konstruktoren in Klassenhierarchien ... 312
20.10 ... Typumwandlung in Klassenhierarchien ... 314
20.11 ... Wann virtuell? ... 315
20.12 ... Andere Designs zur Erweiterbarkeit ... 317
20.13 ... Aufgaben ... 318
21. Der Lebenszyklus von Klassen ... 321
21.1 ... Erzeugung und Zerstörung ... 322
21.2 ... Temporary: Kurzlebige Werte ... 324
21.3 ... Der Destruktor zum Konstruktor ... 325
21.4 ... Yoda-Bedingung ... 330
21.5 ... Konstruktion, Destruktion und Exceptions ... 331
21.6 ... Kopieren ... 333
21.7 ... Zuweisungsoperator ... 335
21.8 ... Streichen von Methoden ... 339
21.9 ... Verschiebeoperationen ... 340
21.10 ... Operatoren ... 344
21.11 ... Eigene Operatoren in einem Datentyp ... 348
21.12 ... Besondere Klassenformen ... 353
21.13 ... Aufgaben ... 356
22. Programmiertechnik, 3. Dan: Die Nuller-Regel ... 359
22.1 ... Die großen Fünf ... 359
22.2 ... Hilfskonstrukt per Verbot ... 360
22.3 ... Die Nullerregel und ihr Einsatz ... 361
22.4 ... Ausnahmen von der Nullerregel ... 362
TEIL IV Fortgeschrittene Themen ... 365
23. Zeiger ... 367
23.1 ... Adressen ... 368
23.2 ... Zeiger ... 369
23.3 ... Heapspeicher und Stapelspeicher ... 372
23.4 ... Smarte Pointer ... 376
23.5 ... Rohe Zeiger ... 385
23.6 ... C-Arrays ... 390
23.7 ... Iteratoren ... 396
23.8 ... Zeiger im Container ... 400
23.9 ... Die Ausnahme: Wann das Wegräumen nicht nötig ist ... 400
23.10 ... Aufgaben ... 402
24. Makros ... 405
24.1 ... Der Präprozessor ... 406
24.2 ... Vorsicht vor fehlenden Klammern ... 410
24.3 ... Vorsicht vor Mehrfachausführung ... 410
24.4 ... Typvariabilität von Makros ... 411
24.5 ... Zusammenfassung ... 413
24.6 ... Aufgaben ... 414
25. Schnittstelle zu C ... 416
25.1 ... Mit Bibliotheken arbeiten ... 417
25.2 ... C-Header ... 418
25.3 ... C-Ressourcen ... 421
25.4 ... 'void'-Pointer ... 422
25.5 ... Daten lesen ... 423
25.6 ... Das Hauptprogramm ... 424
25.7 ... Zusammenfassung ... 425
25.8 ... Aufgaben ... 425
26. Template-Funktionen ... 427
26.1 ... Überladung ... 428
26.2 ... Ein Typ als Parameter ... 429
26.3 ... Funktionskörper einer Template-Funktion ... 429
26.4 ... Zahlen als Template-Parameter ... 431
26.5 ... Viele Funktionen ... 432
26.6 ... Parameter mit Extras ... 432
26.7 ... Template-Methoden sind auch nur Funktionen ... 435
26.8 ... Template-Funktionen in der Standardbibliothek ... 436
26.9 ... Iteratoren statt Container als Template-Parameter ... 437
26.10 ... Beispiel: Informationen über Zahlen ... 439
26.11 ... Aufgaben ... 440
27. Eine Klasse als Funktion ... 442
27.1 ... Werte für einen 'function'-Parameter ... 443
27.2 ... C-Funktionspointer ... 444
27.3 ... Die etwas andere Funktion ... 445
27.4 ... Praktische Funktoren ... 448
27.5 ... Algorithmen mit Funktoren ... 450
27.6 ... Anonyme Funktionen alias Lambda-Ausdrücke ... 451
27.7 ... Aufgaben ... 455
Anhang ... 457
A ... C++11-Besonderheiten ... 458
B ... Operator-Präzedenzen ... 470
C ... Lösungen ... 472
Index ... 515

Hersteller
Rheinwerk Verlag GmbH
Rheinwerkallee 4

DE - 53227 Bonn

E-Mail: Info@rheinwerk-verlag.de

Das könnte Sie auch interessieren

Aldous Huxley
Zeit der Oligarchen
Buch (Hardcover)
Lieferbar innerhalb von 1-2 Wochen
14,00
Julia Ruhs
Links-grüne Meinungsmacht
Buch (Softcover)
Sofort lieferbar
20,00
Sarah Kuttner
Mama & Sam
Buch (Hardcover)
Sofort lieferbar
24,00
Katharina Zweig
Weiß die KI, dass sie nichts weiß?
Buch (Softcover)
Sofort lieferbar
20,00
Tim Berners-Lee
This Is for Everyone
Buch (Hardcover)
Sofort lieferbar
28,00
Marc-Uwe Kling
Der Tag, an dem die Oma das Internet kaputt...
Buch (Hardcover)
Sofort lieferbar
12,00
Martin Andree
Krieg der Medien
Buch (Hardcover)
Sofort lieferbar
28,00
Sofort lieferbar
3,50
Christoph Engemann
Die Zukunft des Lesens
Buch (Softcover)
Sofort lieferbar
14,00
Jörg Rieger Espind...
Windows 11 für Senioren
Buch (Softcover)
Sofort lieferbar
19,90
Cornelia Lohs
Der inoffizielle James Bond Reiseführer
Buch (Softcover)
Lieferbar innerhalb von 1-2 Wochen
19,99
Annekathrin Kohout
Hyperreaktiv
Buch (Softcover)
Sofort lieferbar
18,00
Aya Jaff
Broligarchie
Buch (Hardcover)
Lieferbar innerhalb von 1-2 Wochen
23,99
Sofort lieferbar
19,90
Frank-Michael Becker
Formelsammlung bis zum Abitur - Mathematik ...
Buch (Softcover)
Sofort lieferbar
16,50
Ursula Poznanski
Erebos 2
Buch (Hardcover)
Sofort lieferbar
19,95
Douglas Rushkoff
Survival of the Richest
Buch (Softcover)
Sofort lieferbar
22,00
Keach Hagey
Sam Altman
Buch (Hardcover)
Sofort lieferbar
28,00
Jimmy Wales
TRUST
Buch (Hardcover)
Sofort lieferbar
24,00
Johannes Knörzer
Ein Quantum Zukunft - Quantenphysik und Qua...
Buch (Softcover)
Lieferbar innerhalb von 5-7 Tagen
24,99
Vera Weidenbach
Ada Lovelace
Buch (Hardcover)
Sofort lieferbar
24,00
Ingo Dachwitz
Digitaler Kolonialismus
Buch (Hardcover)
Sofort lieferbar
28,00
Johanna Pirker
The Game is On
Buch (Hardcover)
Sofort lieferbar
26,00
Robert Klaßen
Windows 11
Buch (Softcover)
Sofort lieferbar
12,90
Lieferbar innerhalb von 1-2 Wochen
19,95
Lieferbar innerhalb von 1-2 Wochen
28,99
Rainer Hattenhauer
ChatGPT u. Co.
Buch (Softcover)
Sofort lieferbar
24,90
Tara-Louise Wittwer
Sorry, aber ...
Buch (Softcover)
Lieferbar innerhalb von 1-2 Wochen
18,00
Albert Wiedemann
Informatik (Oldenbourg) Band 7: Grundkurs ...
Buch (Hardcover)
Lieferbar innerhalb von 2 Wochen
33,50
Oliver Bock
ChatGPT - Das Praxisbuch
Buch (Softcover)
Sofort lieferbar
19,95
Steffen Mau
Triggerpunkte
Buch (Softcover)
Lieferbar innerhalb von 1-2 Wochen
25,00
Christian Immler
WhatsApp - optimal nutzen - neueste Version...
Buch (Softcover)
Sofort lieferbar
12,95
Inga Strümke
Künstliche Intelligenz
Buch (Hardcover)
Sofort lieferbar
24,90
Dirk Becker
Einstieg in Linux Mint 22
Buch (Softcover)
Sofort lieferbar
29,90
@Kriegundfreitag
Psyche, du kleiner Schlingel
Buch (Hardcover)
Sofort lieferbar
14,00
Kim Beck
Basiskurs Medienbildung.Gesamtkurs
Buch (Softcover)
Sofort lieferbar
8,00