Sie sind hier
E-Book

C++

Das komplette Starterkit für den einfachen Einstieg in die Programmierung

AutorDirk Louis
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2018
Seitenanzahl493 Seiten
ISBN9783446453883
FormatePUB/PDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis24,99 EUR

C++ ist eine der wichtigsten und meistgenutzten Programmiersprachen weltweit, gilt aber auch als sehr kompliziert.
Dieses Buch vermittelt Ihnen in leicht verständlichen Lektionen die Grundlagen der C++-Programmierung nach dem neuesten Standard C++ 17. Schritt für Schritt erfahren Sie alles über die Sprache und die Konzepte, die der C++-Programmierung zugrunde liegen.
Erste Schritte mit C++
- Der sichere Einstieg
- Keine Vorkenntnisse erforderlich
- Von den Grundlagen bis zum Profikurs
Der mehrteilige Aufbau des Buches spiegelt dabei Ihre vier Entwicklungsstufen wider:
Auf der ersten Stufe werden Sie in lockerem, leicht verständlichem Stil in die Grundlagen und Hintergründe der Programmierung eingeführt.
Die zweite Stufe erschließt Ihnen dann die wichtigsten Elemente der C++-Standardbibliothek, mit deren Hilfe Sie die unterschiedlichsten Programmideen umsetzen können.
Der dritte Teil führt Sie in die Geheimnisse der Objektorientierung ein und im vierten Teil untersuchen wir noch einige weit fortgeschrittene Themen wie die Operatorenüberladung, Zeiger auf Funktionen oder die Möglichkeiten der Bitmanipulation.
Referenz und Nachschlagewerk
Abgerundet wird das Buch durch zahlreiche Übungen, einen Lösungsteil, eine Syntax-Referenz und einen umfangreicher Index, damit Ihnen das Buch auch nach dem ersten Durcharbeiten als Referenz und Nachschlagewerk gute Dienste leisten kann.

Dirk Louis studierte Informatik und Biologie und ist Autor aus Leidenschaft. Java, Android und C++ sind seine Kernthemen.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
1Keine Angst vor C++!

C++ steht in dem Ruf, eine besonders mächtige und leistungsfähige, aber leider auch eine sehr schwer zu erlernende Programmiersprache zu sein. Letzteres ist wohl darauf zurückzuführen, dass die vielfältigen Möglichkeiten und die Freiheiten, die C++ dem Programmierer bietet, einer ebenso großen Zahl an Konzepten, Techniken und unterschiedlichen Syntaxformen gegenüberstehen. Und gerade diese Syntaxformen – das lässt sich nicht leugnen – können auf Anfänger schon recht abschreckend wirken. Einige Kostproben gefällig? Zeilen der Form:

virtual const char* f() const noexcept;

sind in C++ keineswegs unüblich und auch Berechnungen der Form:

i = m++*+n;

sind möglich. Besondere Freude bereiten aber Deklarationen wie z. B.:

int *(*f(int))(int, int);

Falls Ihnen jetzt Zweifel kommen, ob Sie mit C++ wirklich die richtige Wahl getroffen haben, so lassen Sie sich versichern:

  • C++ ist viel einfacher, als es manchmal den Anschein hat.

  • Schon bald werden Sie Ihre eigenen C++-Programme schreiben.

  • Mit jedem Programm, das Sie schreiben, wird Ihnen C++ vertrauter und selbstverständlicher erscheinen.

Am Ende dieses Buchs werden Sie nicht nur in der Lage sein, attraktive und professionelle Programmvorhaben anzugehen, Sie werden auch verstehen, was die erste der obigen Beispielzeilen bedeutet, und Sie werden den Kopf darüber schütteln, warum der Verfasser der eigentlich doch ganz einfachen zweiten Beispielzeile den Code nicht lesefreundlicher formatiert hat.

Nur die Bedeutung der dritten Beispielzeile werden Sie nach der Lektüre dieses Buchs immer noch nicht verstehen. Aber trösten Sie sich: Die Konstruktion, die in dieser Zeile deklariert wird 1, ist so abgehoben, dass Sie unter zehn professionellen C++-Programmierern vermutlich höchstens einen finden werden, der diese Konstruktion erkennt, geschweige denn sie selbst schon einmal eingesetzt hätte.

Warum aber ist C++ so mächtig? Warum gibt es so viele Konzepte in der Sprache und warum ist die Syntax so kryptisch? Die Antwort auf diese Fragen liegt in der Geschichte von C++.

1.1Von C zu C++

"The times they are a changin´" – die Zeiten ändern sich – heißt es in einem berühmten Song von Bob Dylan. Sicherlich hatte Dylan dabei nicht die Entwicklungen in der IT-Branche und der Softwareerstellung im Auge, doch allgemeine Wahrheiten lassen sich eben auf viele verschiedene Bereiche anwenden – und manchmal eben auch auf den Bereich der Softwareentwicklung.

Dort hat im Laufe der letzten Jahrzehnte tatsächlich ein grundlegender Wandel stattgefunden.

1.1.1Rückblick

Wann die Entwicklung des Computers, der Rechenmaschine, begonnen hat, ist gar nicht so leicht zu sagen. Es hängt sehr davon ab, wie weit man zurückgehen möchte. In einer Aprilausgabe der renommierten Fachzeitschrift "Spektrum der Wissenschaften" wurde vor einigen Jahren beispielsweise von einer Aufsehen erregenden Entdeckung berichtet: Amerikanische Archäologen hatten auf einer Insel bei Neuguinea einen frühzeitlichen Computer entdeckt. Aus Seilen und Rollen hatten die Ureinwohner aus der Elektronik bekannte Schaltbausteine wie AND-Gatter, OR-Gatter und Inverter erstellt und zu einem echten Rechenwerk zusammengesetzt. Die Archäologen nahmen an, dass die damalige Priesterkaste diesen "Computer" als eine Art Orakel betrieb und ihr Wissen um die Konstruktion dieses Orakels zum Machterhalt nutzte. Schematische Abbildungen zur Funktionsweise des Rechenwerks und eine Einführung in die digitale Schaltungslogik rundeten den Artikel ab. Natürlich handelte es sich um einen Aprilscherz, aber immerhin: Unter dem Eindruck von so viel Logik und Wissenschaft blieb der gesunde Menschenverstand einiger Leser auf der Strecke. In den nachfolgenden Monaten ergingen daraufhin einige böse Briefe an die Redaktion von aufgebrachten Lesern, die die sensationelle Nachricht sofort weiterverbreitet und sich dabei bei ihren Professoren und Kollegen blamiert hatten.

Nicht ganz so weit zurückliegend, dafür aber verbrieft, ist die Erfindung des Lochkartensystems durch den Deutsch-Amerikaner Hermann Hollerith. Um das Jahr 1890 entwickelte er ein Verfahren, bei dem Daten durch Lochung bestimmter Felder auf vorgefertigten Karten (eben den Lochkarten) kodiert und festgehalten wurden. Mit Hilfe spezieller Maschinen, den sogenannten Hollerith- oder Lochkartenmaschinen, konnte man diese Daten automatisch auswerten, beispielsweise zur Erstellung von Serienbriefen, zur statistischen Datenerfassung oder allgemein zur Auswertung großer Datenmengen.

Der erste offiziell anerkannte, noch mechanische Computer war der 1936 gebaute Z1 des Berliners Konrad Zuse. Kurz darauf folgten Röhren-, später Transistoren- und schließlich Chip-Rechner. In der Zwischenzeit hatte sich auch bei der Softwareentwicklung Einiges getan: Anstatt Lochkarten zu stanzen, gab man Maschinenbefehlprogramme über ein Terminal ein. Irgendwann wurden die Maschinenbefehle durch die Sprache Assembler ersetzt und schließlich kamen die ersten höheren Programmiersprachen, die interpretiert oder kompiliert wurden.

Interpreter und Compiler

Maschinenbefehle sind "Wörter", die aus einer Folge von Nullen und Einsen bestehen, also beispielsweise 0011000010101011. Das eigentliche Rechenwerk eines Computers, der Prozessor, versteht nur diese binären Befehle (wobei noch zu beachten ist, dass jeder Prozessortyp seinen eigenen spezifischen Sprachschatz hat). Da das Programmieren mit diesen Befehlen für Menschen viel zu mühsam und schwierig ist, kam man auf die Idee, die Programmquelltexte in einer anderen Sprache aufzusetzen und dann mit Hilfe eines passenden Übersetzerprogramms in Maschinenbefehle umschreiben zu lassen. Die üblichen menschlichen Sprachen sind aber viel zu komplex und uneindeutig, um sie maschinell übersetzen zu können. Aus diesem Grunde wurden eigene Programmiersprachen wie C oder Basic entwickelt, mit einfacher Grammatik und geringem Wortschatz, die für Menschen leichter zu erlernen und für Übersetzerprogramme leichter in Maschinenbefehle umzusetzen sind.

Grundsätzlich gibt es zwei Kategorien von Übersetzerprogrammen: die Interpreter und die Compiler.

Ein Interpreter lädt den Quelltext des Programms, übersetzt ihn stückweise und lässt die übersetzten Anweisungen direkt vom Prozessor ausführen. Endet das Programm, endet auch die Ausführung des Interpreters.

Ein Compiler lädt den Quelltext des Programms, übersetzt ihn komplett (wobei er auch kleinere Optimierungen vornehmen kann) und speichert das kompilierte Programm in einer neuen Datei (unter Windows eine .exe-Datei) auf der Festplatte. Wenn der Anwender die .exe-Datei danach aufruft, wird das Programm direkt vom Betriebssystem geladen und ausgeführt.

Bild 1.1 Schematische Darstellung der Arbeit eines Interpreters und eines Compilers. (Beachten Sie, dass bei der Kompilierung das fertige Programm nur auf Rechnern ausgeführt werden kann, deren Architektur und Betriebssystemfamilie zu dem Rechner des Programmierers kompatibel sind.)

Ein interpretiertes Programm kann auf jedem Rechner ausgeführt werden, auf dem ein passender Interpreter verfügbar ist. Die Ausführung ist allerdings langsamer und der Quelltext des Programms ist für jeden einsehbar. 2

Ein kompiliertes Programm kann nur auf Rechnern ausgeführt werden, deren Plattform (Prozessor/Betriebssystem-Kombination) die Maschinenbefehle versteht, die der Compiler erzeugt hat. Dafür kann der Code für die Plattform optimiert werden, ist aufgrund der Binärkodierung vor geistigem Diebstahl weitgehend geschützt und wird schneller ausgeführt, da kein Interpreter zwischengeschaltet werden muss.

1.1.2Die strukturierte Programmierung

Anfangs erlaubten die Programmiersprachen nur Programme, in denen die einzelnen Anweisungen, die der Computer bei Ausführung des Programms abarbeiten sollte, von oben nach unten im Programmquelltext angegeben werden mussten.

1. Tue dies

2. Tue das

3. Mache jetzt jenes

4. ...

Programmieranfänger dürfte dieses Prinzip begeistern, denn es ist leicht zu verstehen. Doch in der Praxis stellte sich damals bald heraus, dass diese Art der Programmierung ihre Grenzen hat: Einmal implementierte Teillösungen lassen sich schlecht wiederverwerten, größere Programme sind mangels Strukturierung...

Blick ins Buch
Inhaltsverzeichnis
Inhalt7
Vorwort17
Teil I: Grundkurs19
1 Keine Angst vor C++!21
1.1 Von C zu C++22
1.1.1 Rückblick22
1.1.2 Die strukturierte Programmierung24
1.1.3 Chips sind billig, Programmierer teuer26
1.1.4 Fassen wir zusammen27
1.2 Von der Idee zum fertigen Programm28
1.3 Näher hingeschaut: der C++-Compiler30
1.3.1 Der Compiler ist ein strenger Lehrer30
1.3.2 Definition und Deklaration31
1.3.3 Das Konzept der Headerdateien33
1.3.4 Namensräume34
1.3.5 Der Compiler bei der Arbeit36
1.3.6 ISO und die Compiler-Wahl37
1.3.7 Der neue C++17-Standard37
1.4 Übungen38
2 Grundkurs: Das erste Programm39
2.1 Hallo Welt! – das Programmgerüst39
2.1.1 Typischer Programmaufbau40
2.1.2 Die Eintrittsfunktion main()41
2.1.3 Die Anweisungen42
2.1.4 Headerdateien44
2.1.5 Kommentare45
2.2 Programmerstellung46
2.2.1 Programmerstellung mit Visual Studio46
2.2.2 Programmerstellung mit GNU-Compiler53
2.2.3 Programmausführung54
2.3 Stil56
2.4 Übungen57
3 Grundkurs: Daten und Variablen59
3.1 Konstanten (Literale)59
3.2 Variablen62
3.2.1 Variablendefinition62
3.2.2 Werte in Variablen speichern65
3.2.3 Variablen bei der Definition initialisieren66
3.2.4 Werte von Variablen abfragen67
3.3 Konstante Variablen68
3.4 Die Datentypen69
3.4.1 Die Bedeutung des Datentyps69
3.4.2 Die elementaren Datentypen73
3.4.3 Weitere Datentypen75
3.5 Typumwandlung75
3.5.1 Typumwandlung bei der Ein- und Ausgabe75
3.5.2 Automatische Typumwandlungen78
3.5.3 Explizite Typumwandlungen79
3.6 Übungen80
4 Grundkurs: Operatoren und Ausdrücke83
4.1 Rechenoperationen83
4.1.1 Die arithmetischen Operatoren83
4.1.2 Die mathematischen Funktionen86
4.2 Ausdrücke87
4.3 Die kombinierten Zuweisungen89
4.4 Inkrement und Dekrement89
4.5 Strings addieren91
4.6 Weitere Operatoren92
4.7 Übungen92
5 Grundkurs: Kontrollstrukturen93
5.1 Entscheidungen und Bedingungen93
5.1.1 Bedingungen94
5.1.2 Die Vergleichsoperatoren95
5.1.3 Die logischen Operatoren96
5.2 Verzweigungen98
5.2.1 Die einfache if-Anweisung98
5.2.2 Die if-else-Verzweigung100
5.2.3 Die switch-Verzweigung103
5.3 Schleifen107
5.3.1 Die while-Schleife107
5.3.2 Die do-while-Schleife111
5.3.3 Die for-Schleife113
5.3.4 Schleifen mit mehreren Schleifenvariablen114
5.3.5 Performance-Tipps115
5.4 Sprunganweisungen115
5.4.1 Abbruchbefehle für Schleife117
5.4.2 Abbruchbefehle für Funktionen120
5.4.3 Sprünge mit goto120
5.5 Fallstricke120
5.5.1 Die leere Anweisung120
5.5.2 Nebeneffekte in booleschen Ausdrücken121
5.5.3 Dangling else-Problem122
5.5.4 Endlosschleifen123
5.6 Übungen124
6 Grundkurs: Eigene Funktionen127
6.1 Definition und Aufruf128
6.1.1 Der Ort der Funktionsdefinition129
6.1.2 Funktionsprototypen (Deklaration)130
6.2 Rückgabewerte und Parameter131
6.2.1 Rückgabewerte133
6.2.2 Parameter135
6.3 Lokale und globale Variablen140
6.3.1 Lokale Variablen140
6.3.2 Globale Variablen141
6.3.3 Gültigkeitsbereiche und Verdeckung142
6.4 Funktionen und der Stack144
6.5 Überladung146
6.6 Übungen148
7 Grundkurs: Eigene Datentypen149
7.1 Arrays149
7.1.1 Definition149
7.1.2 Auf Array-Elemente zugreifen151
7.1.3 Initialisierung151
7.1.4 Arrays in Schleifen durchlaufen152
7.1.5 Arrays an Funktionen übergeben155
7.1.6 Mehrdimensionale Arrays155
7.1.7 Vor- und Nachteile der Programmierung mit Arrays156
7.2 Aufzählungen156
7.2.1 Definition159
7.2.2 Variablen159
7.2.3 Aufzählungstypen und switch-Verzweigungen160
7.2.4 Die neuen enum class-Aufzählungen160
7.3 Strukturen161
7.3.1 Definition162
7.3.2 Variablendefinition163
7.3.3 Zugriff auf Elemente164
7.3.4 Initialisierung164
7.3.5 Arrays von Strukturen164
7.4 Klassen166
7.4.1 Definition166
7.4.2 Variablen, Objekte und Konstruktoren166
7.4.3 Zugriffsschutz167
7.5 Übungen170
8 Grundkurs: Zeiger und Referenzen171
8.1 Zeiger171
8.1.1 Definition172
8.1.2 Initialisierung172
8.1.3 Dereferenzierung174
8.1.4 Zeigerarithmetik176
8.2 Referenzen177
8.3 Einsatzgebiete177
8.3.1 call by reference178
8.3.2 Dynamische Speicherreservierung183
8.4 Übungen189
9 Grundkurs: Noch ein paar Tipps191
9.1 Wie gehe ich neue Programme an?191
9.2 Wo finde ich Hilfe?192
9.2.1 Hilfe zu Compiler-Meldungen192
9.2.2 Hilfe bei der Lösung von Programmieraufgaben193
9.2.3 Hilfe bei Programmen, die nicht richtig funktionieren197
9.2.4 Debuggen197
9.3 Programme optimieren199
Teil II – Aufbaukurs: die Standardbibliothek201
10 Aufbaukurs: Einführung203
10.1 Bibliotheken verwenden203
10.2 Hilfe zu den Bibliothekselementen204
11 Aufbaukurs: Mathematische Funktionen207
11.1 Die mathematischen Funktionen207
11.1.1 Mathematische Konstanten209
11.1.2 Verwendung der trigonometrischen Funktionen210
11.1.3 Überläufe210
11.2 Zufallszahlen211
11.3 Komplexe Zahlen213
11.4 Übungen214
12 Aufbaukurs: Strings215
12.1 String-Literale215
12.1.1 Escape-Sequenzen216
12.1.2 Zeilenumbrüche218
12.2 Strings erzeugen219
12.3 Strings aneinanderhängen220
12.4 Strings vergleichen220
12.5 Sonstige String-Manipulationen223
12.6 C-Strings224
12.7 Umwandlungen zwischen Strings und Zahlen224
12.8 Übungen225
13 Aufbaukurs: Ein- und Ausgabe227
13.1 Daten auf die Konsole ausgeben227
13.2 Formatierte Ausgabe228
13.2.1 Ausgabebreite228
13.2.2 Füllzeichen229
13.2.3 Genauigkeit229
13.2.4 Formatierte Ausgabe mit printf()230
13.3 Deutsche Umlaute231
13.4 Daten über die Konsole (Tastatur) einlesen234
13.5 Fehlerbehandlung235
13.6 Streams237
13.7 Textdateien238
13.7.1 In Textdateien schreiben239
13.7.2 Aus Textdateien lesen241
13.8 Binärdateien244
13.9 Übungen246
14 Aufbaukurs: Zeit und Datum247
14.1 Zeit und Datum247
14.2 Laufzeitmessungen253
14.3 Übungen255
15 Aufbaukurs: Container257
15.1 Die STL257
15.2 vector – ein intelligenter Daten-Container260
15.2.1 Einsatz eines Containers261
15.2.2 Größenmanagement von Containern262
15.2.3 Typische Memberfunktionen263
15.3 Der Gebrauch von Iteratoren264
15.4 Die Algorithmen267
15.4.1 generate()270
15.4.2 stable_sort()271
15.5 Schlüssel/Wert-Paare272
15.6 Übungen274
16 Aufbaukurs: Programme aus mehreren Quelltextdateien275
16.1 Quelltext verteilen275
16.1.1 Funktionen über Dateigrenzen hinweg verwenden276
16.1.2 Klassen über Dateigrenzen hinweg verwenden276
16.1.3 Variablen über Dateigrenzen hinweg verwenden277
16.1.4 Typdefinitionen über Dateigrenzen hinweg verwenden278
16.2 Mehrfacheinkopieren von Headerdateien verhindern279
16.3 Übungen281
Teil III – Objektorientierte Programmierung283
17 OOP-Kurs: Klassen285
17.1 Objektorientiert denken – objektorientiert programmieren285
17.1.1 Objektorientiertes Programmieren285
17.1.2 Wie sind Objekte beschaffen?286
17.1.3 Wie findet man einen objektorientierten Lösungsansatz?288
17.1.4 Objekte und Klassen289
17.2 Klassendefinition292
17.2.1 Zugriffsrechte293
17.2.2 Quelltext- und Headerdatei295
17.2.3 Klassen zu Visual-Studio-Projekten hinzufügen298
17.3 Membervariablen301
17.3.1 Anfangswerte302
17.3.2 Private-Deklaration306
17.3.3 Eingebettete Objekte308
17.3.4 Konstante Membervariablen310
17.3.5 Statische Membervariablen311
17.4 Memberfunktionen312
17.4.1 Definition innerhalb der Klassendefinition312
17.4.2 Definition außerhalb der Klassendefinition313
17.4.3 Der this-Zeiger314
17.4.4 Statische Memberfunktionen315
17.4.5 Konstante Memberfunktionen316
17.4.6 Get-/Set-Memberfunktionen317
17.5 Die Konstruktoren320
17.5.1 Definition und Aufruf320
17.5.2 Ersatz- und Standardkonstruktoren322
17.6 Der Destruktor325
17.7 Übungen326
18 OOP-Kurs: Vererbung329
18.1 Das Prinzip der Vererbung329
18.1.1 Der grundlegende Mechanismus330
18.1.2 Die Syntax331
18.1.3 Wann ist Vererbung gerechtfertigt?332
18.1.4 Einige wichtige Fakten333
18.2 Das Basisklassenunterobjekt334
18.2.1 Zugriff335
18.2.2 Instanzbildung338
18.3 Die Zugriffsspezifizierer für die Vererbung340
18.4 Verdecken, überschreiben und überladen341
18.4.1 Verdeckung342
18.4.2 Überladung342
18.4.3 Überschreibung343
18.5 Der Destruktor343
18.6 Mehrfachvererbung344
18.7 Übungen344
19 OOP-Kurs: Polymorphie347
19.1 Grundprinzip und Implementierung348
19.2 Späte und frühe Bindung351
19.2.1 Frühe Bindung351
19.2.2 Späte Bindung352
19.3 Generische Programmierung353
19.3.1 Basisklassen-Arrays354
19.3.2 Basisklassenparameter356
19.4 Typidentifizierung zur Laufzeit (RTTI)357
19.4.1 Umwandlung mit dynamic_cast357
19.4.2 Der typeid()-Operator359
19.5 Abstrakte Klassen359
19.5.1 Rein virtuelle Funktionen360
19.5.2 Abstrakte Klassen360
19.6 Übungen361
20 OOP-Kurs: Ausnahmebehandlung363
20.1 Fehlerprüfung mit Ausnahmen364
20.2 Ausnahmen abfangen366
20.3 Ausnahmen auslösen369
20.4 Programmfluss und Ausnahmebehandlung371
20.4.1 Wo wird der Programmfluss nach einer Ausnahme fortgesetzt?372
20.4.2 Die Problematik des gestörten Programmflusses372
20.5 Übungen374
Teil IV – Profikurs375
21 Profikurs: Allgemeine Techniken377
21.1 Vorzeichen und Überlauf377
21.2 Arithmetische Konvertierungen379
21.3 Lokale static-Variablen379
21.4 Der ?:-Operator380
21.5 Bit-Operatoren380
21.5.1 Multiplikation mit 2381
21.5.2 Division durch 2382
21.5.3 Klein- und Großschreibung382
21.5.4 Flags umschalten383
21.5.5 Gerade Zahlen erkennen383
21.6 Zeiger auf Funktionen385
21.7 Rekursion387
21.8 constexpr-Funktionen389
21.9 Variablendefinition in if und switch390
22 Profikurs: Objektorientierte Techniken393
22.1 Zeiger auf Memberfunktionen393
22.2 Friends395
22.3 Überladung von Operatoren396
22.3.1 Syntax396
22.3.2 Überladung des Inkrement-Operators ++397
22.3.3 Überladung arithmetischer Operatoren +, +=398
22.3.4 Überladung der Streamoperatoren <<>>399
22.4 Objekte vergleichen400
22.4.1 Gleichheit400
22.4.2 Größenvergleiche402
22.5 Objekte kopieren404
23 Profikurs: Gültigkeitsbereiche und Lebensdauer409
24 Profikurs: Templates413
24.1 Funktionen-Templates414
24.2 Klassen-Templates415
25 Profikurs: Reguläre Ausdrücke419
25.1 Syntax regulärer Ausdrücke419
25.1.1 Zeichen und Zeichenklassen420
25.1.2 Quantifizierer421
25.1.3 Gruppierung422
25.1.4 Assertionen (Anker)423
25.2 Musterabgleich mit regulären Ausdrücken423
25.3 Suchen mit regulären Ausdrücken424
25.4 Ersetzen mit regulären Ausdrücken425
26 Profikurs: Lambda-Ausdrücke427
26.1 Syntax427
26.2 Einsatz429
A Anhang A: Lösungen431
B Anhang B: Die Beispiele zum Buch451
B.1 Installation der Visual Studio Community Edition451
B.2 Ausführung der Beispielprogramme454
B.2.1 Ausführung mit VS Community Edition 2017455
B.2.2 Ausführung mit beliebigen integrierten Entwicklungsumgebungen456
B.2.3 Ausführung mit GNU-Konsolen-Compiler457
C Anhang C: Zeichensätze459
C.1 Der ASCII-Zeichensatz459
C.2 Der ANSI-Zeichensatz460
D Anhang D: Syntaxreferenz463
D.1 Schlüsselwörter463
D.2 Elementare Typen464
D.3 Strings465
D.4 Operatoren466
D.5 Ablaufsteuerung467
D.6 Ausnahmebehandlung469
D.7 Aufzählungen469
D.7.1 enum469
D.7.2 enum class (C++11)470
D.8 Arrays470
D.9 Zeiger471
D.10 Strukturen471
D.11 Klassen472
D.12 Vererbung475
D.13 Namensräume475
E Anhang E: Die Standardbibliothek477
E.1 Die C-Standardbibliothek477
E.2 Die C++-Standardbibliothek478
Index481
Leere Seite2

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

aufstieg

aufstieg

Zeitschrift der NaturFreunde in Württemberg Die Natur ist unser Lebensraum: Ort für Erholung und Bewegung, zum Erleben und Forschen; sie ist ein schützenswertes Gut. Wir sind aktiv in der Natur ...

Courier

Courier

The Bayer CropScience Magazine for Modern AgriculturePflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und generell am Thema Interessierten, mit umfassender ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren. Der DSD informiert über aktuelle Themen ...

e-commerce magazin

e-commerce magazin

e-commerce magazin Die Redaktion des e-commerce magazin versteht sich als Mittler zwischen Anbietern und Markt und berichtet unabhängig, kompetent und kritisch über ...

VideoMarkt

VideoMarkt

VideoMarkt – besser unterhalten. VideoMarkt deckt die gesamte Videobranche ab: Videoverkauf, Videoverleih und digitale Distribution. Das komplette Serviceangebot von VideoMarkt unterstützt die ...

Evangelische Theologie

Evangelische Theologie

Über »Evangelische Theologie« In interdisziplinären Themenheften gibt die Evangelische Theologie entscheidende Impulse, die komplexe Einheit der Theologie wahrzunehmen. Neben den Themenheften ...