Schrödinger programmiert C++ -  Dieter Bär

Schrödinger programmiert C++ (eBook)

Das etwas andere Fachbuch

(Autor)

eBook Download: PDF
2015 | 2. Auflage
696 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-3826-7 (ISBN)
Systemvoraussetzungen
44,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Schrödinger ist unser Mann fürs Programmieren! Er kann schon was, aber noch nicht C++. Schlau ist er, auch neugierig, aber zuweilen ungeduldig und etwas chaotisch. Er hasst Katzen und liebt WoW. Eigentlich der perfekte Partner, um endlich mal gründlich C++ zu lernen.
Zum Buch:
Ein Traum! Die volle Packung C++. Die nötige Theorie, viele Hinweise und Tipps [im Büro], Unmengen von gutem, aber auch schlechtem Code, der verbessert und repariert werden will [in der Werkstatt] mit viel Kaffee und Übungen und den verdienten Pausen [zu Hause im Wohnzimmer]. Und mittendrin ist Schrödinger und natürlich Du!
Schrödinger garantiert:
- Ausführlicher Einstieg in ANSI C++
- Doch auch für Fortgeschrittene ist einiges dabei
- Für die tägliche Programmierarbeit geeignet
- Jede Menge guter Beispiele
- Leichtes Lernen durch Abwechslung und Spaß
- Für Einsteiger, Umsteiger und Fortgeschrittene

Aus dem Inhalt:

  • Ausführlicher Einstieg in ANSI C++
  • Von Entwicklungsumgebungen, Basisdatentypen, Kontrollstrukturen, Arrays, Strings, Vektoren und Co. über Klassen und Streams bis zur STL und zu C++14
  • Für die tägliche Programmierarbeit absolut geeignet
  • Eine Menge guter Beispiele, ach, unzählige davon!
  • Für Einsteiger und Umsteiger perfekt


Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Eine locker zu lesende Einführung für Einsteiger.«
freiesMagazin: »Wenn man sich als Leser auf dieses ungewohnte Konzept einlässt, hat man viel Spaß an der Lektüre«
c't: »Das Buch eröffnet einen praxisnahen Zugang zur Arbeit mit C++. «



Er kennt Schrödinger wohl am besten: Dieter Bär. War ein Bier mit ihm trinken und ist zu Recht stolz, dass sein Kumpel in die Liga der echten Programmierer aufgestiegen ist. Bär kann nicht nur C++, auch C und Perl kann er auch nicht lassen.

An den Leser 2
Vorwort 23
1 Wir richten uns ein ...: Entwicklungsumgebungen für C++ 25
Brauche ich eine IDE zum Programmieren? 26
Multikulturelle Sachen 27
Mikroweiche Sachen 28
Die X-Sachen 29
Angebissene Äpfel 30
Lass uns endlich loslegen ... 31
Übersetzen mit einer Entwicklungsumgebung 31
g++ und clang++ 35
... am Ende läuft es 37
2 Elefanten können nicht fliegen 39
Was ist eigentlich ein Computerprogramm? Ganz kurz und knapp für alle Schrödingers 40
Die Sache mit dem main-Dings ... 41
Unser erstes main-Dings soll laufen ... 43
Endlich entspannen und träumen! 46
Kreuz und quer oder alles in Reih und Glied? 47
Kein Kommentar? 47
Wie komme ich hier zum Bildschirm ...? 48
Auf dem Weg zum Bildschirm 50
Badewanne schon voll? 50
Gib mir fünf 51
Stream me up, Scotty 51
Gegenseitige Wahrnehmung ... 52
Manipulieren oder selber steuern? 53
Noch ein wenig Brain-Streaming 54
3 Verschiedene Typen für einen bestimmten Zweck: Die C++-Basistypen 57
Starke Typen 58
Mein Name ist Schrödinger 59
Fundamentale und faule Typen 59
Deklaration und Definition 60
Ganzer Kerl dank ... 61
Zeichenfolgen von Ganzzahlen 62
Positive und/oder negative Haltung und ein Endteil 62
Die Sache mit der Wahrheit ... 63
Was nehmen wir für einen Typen? 65
Die Welt der ganzen Kerle 66
Was für den einen das Komma, ist für den anderen der Punkt 67
Das Pünktchen in der Werkstatt 68
Am Ende war das Pünktchen ... 69
Zeichensalat 70
Doch ein ganzer Kerl? 71
Turmbau zu Babel 72
Zum Flüchten ... 73
Unicode-Unterstützung 73
Zeichen für die Welt 74
Erste "Zeichen" für eine Pause 76
Auf die Größe kommt es an ... 78
Je größer, desto besser 79
The Final Frontier 81
Gut, dass es Grenzen gibt ... 83
4 Von Zahlen verweht ...: Arbeiten mit Zahlen 85
Manueller Rechenschieber 86
Erweiterter Grundrechenzuweisungsoperator 87
Futter für den Prozessor 88
Kopfrechnen 90
Achtung vor den Doppelgängern 90
Nachsitzen in Mathe 92
Wenn Grenzen überschritten werden 92
Ungenaues Pünktchen 94
Schwächen offenlegen 95
Mir raucht der Kopf 97
Mathematische Spezialitäten 99
Keine Ahnung, aber ich verwende es trotzdem 101
Am Ende der Mathewelt 104
Den Typ mag ich nicht 106
Lass ihn doch ... 106
Automatische Promotion 107
Mit dem Hammer auf die Schraube 108
Warum man sich nicht auf JEDEN Typ einlassen sollte ... 110
Der sanfte Typ 112
Automatische Typenableitung 114
5 Eigene Entscheidungen treffen oder das Ganze nochmal bitte: Kontrollstrukturen in C++ 115
Endlich selbstständig sein und eigene Entscheidungen treffen 116
Verzweigung, Abzweigung oder Kreuzung 119
Wrong turn? 121
Ein ganz anderer Fall 125
Den Fall bearbeiten 127
Den Fall analysieren 129
Also sprach Zarathustra 131
Immer diese Wiederholungen 134
Ein Schritt vor oder einer zurück ... 134
After a while ... 135
Now for it! 136
Fußnoten nicht vergessen! 137
Nach oben oder nach unten 137
Und alles noch einmal ... 138
6 Von gleichen und unterschiedlichen Typen 141
Gleiche Typen in einer Reihe aufstellen 142
Die Frickel- und Fummelfraktion von Ze 143
Die Ze-Strings 144
Gib mir rohen Input (Bio-Arrays) 145
Das macht keinen Spaß 147
Krankheiten von Ze-Arrays und Ze-Strings 148
Die gleichen Typen in einer Reihe aufstellen und wieder zurück 150
Die Komfortklasse(n) von Ze++ 150
Reduzierter Bioanteil in vector 151
Reduzierter Bioanteil in string 152
Nie mehr Bio(-Arrays) 153
Am Ende hat es doch noch Spaß gemacht 155
Die Mischlinge 157
Zugriff auf die Mischlinge 158
Endlich echte Schuhdaten 159
Die gemischten Typen sind echt nützlich 162
Von Unionen, Aufzählungen und Synonymen 164
Die Lehre der Synonymie 169
Leipziger Allerlei 170
typedef Schrödinger hat_alles_kapiert_t 172
Weißt du, wie viele Sternlein am Himmrl stehen? 174
Ich weiß, wo du wohnst ...! 175
Einbruch in fremde Wohnungen 176
Wohnorte ermitteln 176
Sternenkunde 177
Ze-Zeugs, Zeiger und wo soll das hinführen ...?! 178
Zeiger auf nichts ...! 180
Wo geht’s hier zur "Milky Way"? 181
Wo gibt’s hier frischen RAM? 183
Alles neu 183
Speicherhalde und Müllbeseitigung 184
RAM mit WoW-Freunden auf Anfrage 186
RAM Unleashed 189
7 Funktionen, das Ende von Copy & Paste ...
Die Geister, die ich rufen will 194
Meine Hausgeister 195
Erster Kontakt zum Jenseits 197
Geisterjäger im Wohnzimmer 199
Opfergaben für die Geister 201
Als Kopie übergeben (Call-by-Value) 201
Als Adresse übergeben (Call-by-Reference) 202
Referenzen als Funktionsparameter 203
Ze-Zeugs als Funktionsparameter 204
Strukturen und Klassen als Parameter 205
Unsere Gaben wurden angenommen ... 206
Unendliche Stille 208
Das Jenseits antwortet dir 211
Zeiger als Rückgabewert 212
Dinge, die man besser nicht beschwören sollte ... 1
Referenzen als Rückgabewert 214
Die Stille ist zerrissen 215
Hausgeister zurückgeben ... 217
Jetzt bist du ein Medium 218
Spezielle Geister 220
Werte für den Notfall ... 220
Gleicher Name, unterschiedliche Typen 221
Rollerblades für Funktionen? 221
main Programmende 223
Jenseits von Eden 224
Am Ende der Geisterwelt 227
8 Wie aus Chaos Ordnung entsteht: Schlüsselwörter für Typen 229
Eigenschaften ohne Ende 230
Klasse, die Speicherklasse 230
Typqualifikationen 232
... und für die Funktionen auch noch Extrawürstchen 233
Mindesthaltbarkeitsdatum ändern 234
Gleich-Gültigkeitsbereich 238
Extrawurst-Gültigkeitsbereich 241
Einen neuen Lebensraum schaffen 242
Betreten des neuen Lebensraumes 243
Using me 244
Ein eigenes kleines Königreich 246
Anti-Globalisierung 249
Anonymer Lebensraum 250
Lebensraum im Wohnzimmer 252
Das #Ding vor dem Compiler 255
#include "paste ohne copy" 256
#define "Symbol" und "Makro" 256
Die Übersetzung dirigieren 258
#Ich bestimme, was #du bekommst 259
"No such file or directory", oder wo bin ich hier ... 260
Makros und Symbole, oder doch lieber nicht? 261
#Ich h### all## v##sch###t 263
Und jetzt alle zusammen! 265
Die Zutaten für den leckeren Kuchen 266
"Symbol(s) not found", oder eine Zutat fehlt 267
Die Einkaufsliste mit den Zutaten 268
Eine nützliche Einkaufsliste, was alles so in einer Headerdatei verwenden werden könnte/sollte/muss ... 268
Die Zutaten vorbereiten und abwiegen 269
... und jetzt alles in die Schüssel 270
Rein ins Vergnügen 271
Meister der Quelldateien 275
9 Von Hexenmeistern, Todesrittern und Datenkapseln 277
Oben-ohne-Programmierung 278
Klasse, Klassen! 279
Objekte zum Mitnehmen 279
Ein Objekt erblickt das Licht der Welt 280
Kontrolle: Du kommst hier nicht durch 282
Bei Klassendefinitionen den Überblick behalten 284
Tieferer Einblick in die Elementfunktionen der Datenkapsel 286
Du darfst hier nur lesen 288
Elementfunktionen voll im Einsatz 289
Toll, diese Klassenfunktionen 291
Objekte erstellen 293
Objekte auf die Welt bringen 294
Zugriff auf die Öffentlichkeit der Klasse 295
Indirekter Zugriff auf die Öffentlichkeit 295
Objekte verwenden 296
Die Geschichte von Objekten 299
Aufbauen und vernichten 302
Dienst nach Vorschrift 302
Wir übernehmen selbst ... 303
Konstruktoren mit mehreren Parametern 304
Konstruktoren effektiver initialisieren 305
Klassenelemente direkt initialisieren 306
Am Ende alles wieder saubermachen ... 306
Frühjahrsputz 307
(K)ein Kartenhaus 310
Deep inside 312
Spezielle Konstruktoren 312
Praxis Dr. Schrödinger 315
Wohnung von Dr. Schrödinger 317
The Big Three 318
Spezielle Daten in der Kapsel 319
Gute Freunde kann niemand trennen ... 321
*Gong* Die letzte Runde wird eingeläutet 323
Kampfanalyse 328
10 Kino + WoW + Programmieren = viel Spaß: Überladen von Operatoren 331
Eigene Rechengesetze 332
Gestatten: operator 332
Gesetze für die Herren Operatoren 333
Operatoren nur für Freunde 334
Die Pärchen verwenden die Operatoren 335
Mit vereinten Kräften 337
Glückliche Pärchen 340
Einsame Operatoren überladen 344
Das einsame Leben der einsamen Operatoren 346
Am Ende bleibt ein einsamer Operator 349
Weitere Operatoren überladen 351
Logisch? Fast immer! 351
"Typenverbiegenumwandler" überladen 351
Input-Output-Kompott ... 352
Spezielle Operatorüberladungen in der Praxis 354
Spezialitäten auf dem Sofa 360
Funktionsobjekte 360
Indexoperator [ ] überladen 361
new und delete überladen 361
11 Schrödinger macht sein Testament: Abgeleitete Klassen 363
Erben ohne Erbschaftssteuer 364
Ewig schleichen die Erben 367
Damit keiner leer ausgeht 371
Jetzt das Kleingedruckte lesen 373
Zugriffsrechte für den Beerbten 373
News: Konstruktoren vererben (C++11) 376
Das Kleingedruckte in der Praxis 377
So macht erben langsam Spaß 380
Private Mitglieder durchreichen ... 381
Erbe verwenden und erweitern 382
Redefinition 383
Use me ... 383
Unser Anlageberater verwaltet das Erbe 385
Ordentlich angelegt 387
Konstruktives und destruktives Vererben 389
Implizite Klassenumwandlung 391
Wer bekommt was ... 392
Keiner geht leer aus ... 394
Mehrfachvererbung 396
Mehrfachvererbung in der Praxis 398
Lohnt sich die Mehrfachvererbung überhaupt? 401
Virtuelles Vererben 403
Virtuelle Teilchen verwenden 405
Zwischen Virtualität und Realität 406
Abstrakte Welten 408
Ein alter Bekannter ... 408
Abstrakte Vielgestaltigkeit 410
Jetzt wird es vielseitig – Polymorphie 411
Virtuelle Zerstörungskraft 413
Was vom Abstrakten übrig blieb 414
Was bist du denn? 415
override und final 416
12 Ausstechformen für die Plätzchen: Templates 419
Funktionen zum Ausstechen 420
Verschiedene Teigsorten 422
Plätzchen backen 424
Am Ende sind nur noch Krümel da ... 428
Klassen zum Ausstechen 429
Klassen-Ausstecher-Elementfunktion definieren 430
Klassen-Ausstecher-Elementfunktion überschreiben 431
Objekte ausstechen 432
Klassen-Ausstecher in der Praxis 433
Klassen-Ausstecher in der Wohnung 438
13 Der Schleudersitz für den Notfall: Ausnahmebehandlung 441
Versuchen, werfen und auffangen 442
Noch ein paar Hinweise für das Werfen 444
Jetzt schmeiß schon! 446
Was passiert danach ...? 447
Homerun 450
Mit Klassen um sich schmeißen 453
Nix wie weg hier 453
Schmeißen mit ganzen ­Klassen 455
Homerun mit Klassen 458
(Standard-)Ausnahmen im Angebot 461
What ist dein Problem ...? 462
Ausnahmen im System 463
Wir probieren es aus 464
Logischer Fehler: out_of_range 464
Logischer Fehler: invalid_argument 465
Logischer Fehler: length_error 466
Logischer Fehler: ios_base::failure 467
Standardausnahme-Kontrolle 468
Ausnahme-Spezifikation und noexcept ? 470
noexpect 470
Hasta la vista, baby 471
Ausnahmen verweigern 472
Keine Erwartungen 474
14 Unterwäsche, 100 % Baumwolle, Doppelripp 475
Schurz, Schürzen, Schürzenjäger 476
Strings anlegen und zuweisen 476
Zugriff auf die einzelnen Zeichen 479
Wie groß isses denn? 480
Rohe Strings 480
Noch mehr Unterwäsche 481
Und noch mehr davon 483
Klamottenkiste 485
String konvertieren und manipulieren 485
Such! 486
Überladene Operatoren und Ein-/Ausgabe 488
Ich kann’s nicht mehr hören: Strings 490
Alles sauber dank "Schwarzer Zwerg" 494
15 Ströme ohne Isolierkabel verwenden: Der Umgang mit Streams und Dateien 495
Gib aus den Strom 496
Rohe Eier raus ... 498
Mehr formatierter Output bitte 499
Wir schwenken die Flagge ... 500
Jetzt ist es raus ... 502
Wir ändern die Richtung 505
Rohe Eier rein ... 505
Wo ist mein Input? 507
Jetzt ist es drin ... 511
Wir manipulieren die Ströme 513
Manipulation ist alles ... 516
Ordentlich manipuliert ... 520
Auch ein Strom hat seine Fehler 522
Erst den Strom abstellen ... 524
Die Sicherung ist geflogen 525
Kann man auch was speichern? 526
Datei-Slang 526
Vorhandene Ströme für Dateien 527
Strom für die Datei anschließen 527
Plug-ins für den Dateistrom 528
Den Dateistecker ziehen 530
Alles gesichert ...? 531
Sauber lesbare Sache 531
Stück für Stück 532
Zeile für Zeile 534
Ganze Happen ... 535
Wahlfreier Zugriff 536
Daten wiederherstellen 537
Ein Strom für einen String? 541
Schürzenjäger-Strom 543
Ohne Isolation 545
16 Ausstechformen für Faule: Einführung in die Standard Template Library (STL) 547
Fertigkuchen von Dr. STL ...? 548
Verschiedene Behälter (Container) 549
Algorithmen und Iteratoren 551
Besser als "Selbermachen" 552
... und schmeckt auch noch gut! 555
Detaillierteres Arbeiten mit sequenziellen Fertigkuchen 558
Behälter erstellen 558
Zutaten hinzufügen 559
Zugriff auf den Teig 560
Wie viel passt rein 561
Raus damit ...! 561
Tausch mit mir, oder gib mir alle 562
Mixen, sortieren und rühren 562
Sequenzielle Fertigkuchen abschmecken 563
Bereit zum Essen ... 568
Detaillierteres Arbeiten mit assoziativen Fertigkuchen 570
set und multiset 571
map und multimap 572
Bitte ein Bit-Feld ...! 572
Assoziative Kuchen backen 573
(multi)set me up 573
Now (multi)map me! 575
Bitte ein Bit! 576
Auch assoziative Kuchen kann man essen 579
Zwischen Fertigkuchen und weiteren Zutaten 581
Funktionsobjekte 581
Kategorie von Iteratoren 583
Iterator-Adapter 585
Die Hilfsmittel für Fertigkuchen und Zutaten im Einsatz 586
Hilfe für den Iterator 588
Allmählich wird es öde ... 589
Die fleißigen Arbeiter 592
Nicht-modifizierende Algorithmen 592
Modifizierende Algorithmen 593
Löschende Algorithmen 594
Mutierende Algorithmen 595
Sortierende Algorithmen 596
Algorithmen für sortierte Bereiche 597
Algorithmen verwenden 598
Ende gut 602
17 Schöne neue Welt C++11: C++11 - der neue Standard 605
C++ auf dem neuesten Stand(ard) 606
auto/decltype 607
Einfachere Initialisierung 607
Lambda-Funktionen 608
Range-based-loop 608
Explizite delete- und default-Funktionen 609
nullptr 609
constexpr 610
Ein Konstruktor ruft einen anderen Konstruktor auf 611
Move your body 611
Neues Zeugs im Einsatz 613
auto/decltype 613
{}-Initialisierer verwenden 613
Lambda-Funktion 614
Move my own class 615
Cool, das neue Zeugs 616
Weitere nützliche Features 617
Noch mehr Neuigkeiten ... 619
Ein neues Array? 619
Eine neue verkettete Liste? 620
Hasch? Ist das nicht illegal?! 620
Neue Algorithmen 621
Tuple? Tulpe? 622
Neue Planeten braucht das Universum 623
Neue Backmischungen sind auch gut 626
Kluge Zeiger 628
Ich bin der Klügste hier (shared_ptr) 630
Schwacher Zeiger (weak_ptr) 631
Egoistischer, aber kluger Zeiger (unique_ptr) 633
Klug auch in der Praxis 634
Bist du auch so klug ...? 637
Von Hieroglyphen und regulären Ausdrücken 639
Mini-Sprachkurs zu den Hieroglyphen 639
Objekt für die Hieroglyphen 643
Die Algorithmen für Hieroglyphen 643
Suchergebnis analysieren 644
Suchen mit Hieroglyphen 645
Cleopatra ist da ... 652
Parallele Welten 654
Viele Fäden erzeugen 655
Bist du jetzt ein Faden oder nicht? 657
Argumente für den Thread 657
Wir nehmen jetzt die Fäden in die Hand 658
Nur nicht den Faden verlieren 661
Schütze deine Daten 663
Ein Schloss für den Mutex 666
Sicheres Initialisieren 667
Totgesperrt 668
Einmal bitte ... 670
Am Ende des Fadens ... 672
"Konditions"-Variable ...? 672
Zusammenfassung 674
18 C++ 14 – der Neue!: C++14 – der allerneueste Standard 675
Schon wieder ein neuer Standard? 676
Der Compiler weiß es doch sowieso immer besser 677
Dann mach es doch auch selbst bei den Lambda-Funktionen 677
Gammelcode an den Compiler verraten? 678
Etwas für die Bitverdreher unter uns 679
Und dann noch etwas für die Zahlenzerstückler 680
Mr. Holmes, bitte übernehmen Sie ... 681
Der Tanz mit den Lambda-Parametern 682
Alte Sachen aufheben oder ausmisten? 683
Mir reicht es jetzt mit der neuen Welt 684
Noch ein paar mehr C++14-Sachen 685
Index 689

Erscheint lt. Verlag 28.10.2015
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge C / C++
ISBN-10 3-8362-3826-8 / 3836238268
ISBN-13 978-3-8362-3826-7 / 9783836238267
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
PDFPDF (Wasserzeichen)
Größe: 92,8 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
C++ lernen – professionell anwenden – Lösungen nutzen

von Ulrich Breymann

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
49,99
C++ lernen – professionell anwenden – Lösungen nutzen

von Ulrich Breymann

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
49,99
Das umfassende Handbuch

von Jürgen Wolf; René Krooß

eBook Download (2023)
Rheinwerk Computing (Verlag)
49,90