Schrödinger programmiert C++ - Das etwas andere Fachbuch

Schrödinger programmiert C++ - Das etwas andere Fachbuch

von: Dieter Bär

Galileo Press, 2012

ISBN: 9783836217569

Sprache: Deutsch

689 Seiten, Download: 97678 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Schrödinger programmiert C++ - Das etwas andere Fachbuch



  Inhaltsverzeichnis 13  
  Vorwort 24  
  —1—Wir richten uns ein ... 26  
     Brauche ich eine IDE zum Programmieren? 27  
     Multikulturelle Sachen 28  
     Mikroweiche Sachen 29  
     Die X-Sachen 30  
     Angebissene Äpfel 31  
     Lass uns endlich loslegen ... 32  
     Übersetzen mit einer Entwicklungs­umgebung 32  
     g++ und clang++ 36  
     ... am Ende läuft es 38  
  —2—Elefanten können nicht fliegen, aber Schrödinger kann programmieren 40  
     Was ist eigentlich ein Computer­programm? Ganz kurz und knapp für alle Schrödingers 41  
     Die Sache mit dem main-Dings ... 42  
     Unser erstes main-Dings soll laufen ... 44  
     Endlich entspannen und träumen! 47  
     Kreuz und quer oder alles in Reih und Glied? 48  
     Kein Kommentar? 48  
     Wie komme ich hier zum Bildschirm ...? 49  
     Auf dem Weg zum Bildschirm 51  
     Badewanne schon voll? 51  
     Gib mir fünf 52  
     Stream me up, Scotty 52  
     Gegenseitige Wahrnehmung ... 53  
     Manipulieren oder selber steuern? 54  
     Noch ein wenig Brain-Streaming 55  
  —3—Verschiedene Typen für einen bestimmten Zweck 58  
     Starke Typen 59  
     Mein Name ist Schrödinger 60  
     Fundamentale und faule Typen 60  
     Deklaration und Definition 61  
     Ganzer Kerl dank ... 62  
     Zeichenfolgen von Ganzzahlen 63  
     Positive und/oder negative Haltung und ein Endteil 63  
     Die Sache mit der Wahrheit ... 64  
     Was nehmen wir für einen Typen? 66  
     Die Welt der ganzen Kerle 67  
     Was für den einen das Komma, ist für den anderen der Punkt ... 68  
     Das Pünktchen in der Werkstatt 69  
     Am Ende war das Pünktchen ... 70  
     Zeichensalat 71  
     Doch ein ganzer Kerl? 72  
     Positiver oder negativer Typ 72  
     Turmbau zu Babel 73  
     Zum Flüchten ... 74  
     Unicode-Unterstützung 74  
     Zeichen für die Welt 75  
     Erste „Zeichen“ für eine Pause 77  
     Auf die Größe kommt es an ... 79  
     Je größer, desto besser 80  
     The Final Frontier 82  
     Gut, dass es Grenzen gibt ... 84  
  —4—Von Zahlen verweht 86  
     Manueller Rechenschieber 87  
     Erweiterter Grundrechenzuweisungsoperator 88  
     Futter für den Prozessor 89  
     Kopfrechnen 91  
     Achtung vor den Doppelgängern 91  
     Nachsitzen in Mathe 93  
     Wenn Grenzen überschritten werden 93  
     Ungenaues Pünktchen 95  
     Schwächen offenlegen 96  
     Mir raucht der Kopf 98  
     Mathematische Spezialitäten 100  
     Keine Ahnung, aber ich verwende es trotzdem 102  
     Am Ende der Mathewelt 105  
     Den Typ mag ich nicht 107  
     Lass ihn doch ... 107  
     Automatische Promotion 108  
     Mit dem Hammer auf die Schraube 109  
     Warum man sich nicht auf jeden Typ einlassen sollte ... 111  
     Der sanfte Typ 113  
     Automatische Typenableitung 115  
  —5—Eigene Entscheidungen treffen oder das Ganze nochmal bitte 116  
     Endlich selbstständig sein und eigene Entscheidungen treffen 117  
     Verzweigung, Abzweigung oder Kreuzung 120  
     Wrong turn? 122  
     Ein ganz anderer Fall 126  
     Den Fall bearbeiten 128  
     Den Fall analysieren 130  
     Also sprach Zarathustra 132  
     Immer diese Wiederholungen 135  
     Ein Schritt vor oder einer zurück ... 135  
     After a while ... 136  
     Now for it! 137  
     Fußnoten nicht vergessen! 138  
     Nach oben oder nach unten 138  
     Und alles noch einmal ... 139  
  —6—Von gleichen und unterschiedlichen Typen, dem Sternchen und anderen ungemütlichen Sachen 142  
     Gleiche Typen in einer Reihe aufstellen 143  
     Die Frickel- und Fummelfraktion von Ze 144  
     Die Ze-Strings 145  
     Gib mir rohen Input (Bio-Arrays) 146  
     Das macht keinen Spaß 148  
     Krankheiten von Ze-Arrays und Ze-Strings 149  
     Die gleichen Typen in einer Reihe aufstellen und wieder zurück 151  
     Die Komfortklasse(n) von Ze 151  
     Reduzierter Bioanteil in vector 152  
     Reduzierter Bioanteil in string 153  
     Nie mehr Bio(-Arrays) 154  
     Am Ende hat es doch noch Spaß gemacht 156  
     Die Mischlinge 158  
     Zugriff auf die Mischlinge 159  
     Endlich echte Schuhdaten 160  
     Die gemischten Typen sind echt nützlich 163  
     Von Unionen, Aufzählungen und Synonymen 165  
     1, 2, Freddy kommt vorbei, 3, 4, schließe deine Tür … 166  
     Die Lehre der Synonymie 170  
     Leipziger Allerlei 171  
     typedef Schrödinger hat_alles_kapiert_t 173  
     Weißt du, wie viele Sternlein am Himmel stehen? 175  
     Ich weiß, wo du wohnst ...! 176  
     Einbruch in fremde Wohnungen 177  
     Wohnorte ermitteln 177  
     Sternenkunde 178  
     Ze-Zeugs, Zeiger und wo soll das hinführen…?! 179  
     Zeiger auf nichts…! 181  
     Wo geht’s hier zur „Milky Way“? 182  
     Wo gibt’s hier frischen RAM? 184  
     Alles neu 184  
     Speicherhalde und Müllbeseitigung 185  
     RAM mit WoW-Freunden auf Anfrage 187  
     RAM Unleashed 190  
  —7—Funktionen, das Ende von Copy & Paste ... 194  
     Die Geister, die ich rufen will 195  
     Meine Hausgeister 196  
     Erster Kontakt zum Jenseits 198  
     Geisterjäger im Wohnzimmer 200  
     Opfergaben für die Geister 202  
     Als Kopie übergeben (Call-by-Value) 202  
     Als Adresse übergeben (Call-by-Reference) 203  
     Referenzen als Funktionsparameter 204  
     Ze-Zeugs als Funktionsparameter 205  
     Strukturen und Klassen als Parameter 206  
     Unsere Gaben wurden angenommen … 207  
     Unendliche Stille 209  
     Das Jenseits antwortet dir 212  
     Zeiger als Rückgabewert 213  
     Dinge, die man besser nicht beschwören sollte … 213  
     Referenzen als Rückgabewert 215  
     Die Stille ist zerrissen 216  
     Hausgeister zurückgeben … 218  
     Jetzt bist du ein Medium 219  
     Spezielle Geister 221  
     Werte für den Not-fall … 221  
     Gleicher Name, unterschiedliche Typen 222  
     Rollerblades für Funktionen? 222  
     main Programmende 224  
     Jenseits von Eden 225  
     Am Ende der Geisterwelt 228  
  —8—Wie aus Chaos Ordnung entsteht 230  
     Eigenschaften ohne Ende 231  
     Klasse, die Speicherklasse 231  
     Typqualifikationen 233  
     … und für die Funktionen auch noch Extrawürstchen 234  
     Mindesthaltbarkeitsdatum ändern 235  
     Gleich-Gültigkeitsbereich 239  
     Extrawurst-Gültigkeitsbereich 242  
     Einen neuen Lebensraum schaffen 243  
     Betreten des neuen Lebensraumes 244  
     Using me 245  
     Ein eigenes kleines Königreich 247  
     Anti-Globalisierung 250  
     Anonymer Lebensraum 251  
     Lebensraum im Wohnzimmer 253  
     Das #Ding vor dem Compiler 256  
     #include „paste ohne copy“ 257  
     #define „Symbol“ und „Makro“ 257  
     Die Übersetzung dirigieren 259  
     #Ich bestimme, was #du bekommst 260  
     „No such file or directory“, oder wo bin ich hier … 261  
     Makros und Symbole, oder doch lieber nicht? 262  
     #Ich h### all## v##sch###t 264  
     Und jetzt alle zusammen! 266  
     Die Zutaten für den leckeren Kuchen 267  
     „Symbol(s) not found“, oder eine Zutat fehlt 268  
     Die Einkaufsliste mit den Zutaten 269  
     Eine nützliche Einkaufsliste, was alles so in einer Headerdatei verwendet werden könnte/ sollte/muss … 269  
     Die Zutaten vorbereiten und abwiegen 270  
     … und jetzt alles in die Schüssel 271  
     Rein ins Vergnügen 272  
     Meister der Quelldateien 276  
  —9—Von Hexenmeistern, Todesrittern und Datenkapseln 278  
     Oben-ohne-Programmierung 279  
     Klasse, Klassen! 280  
     Objekte zum Mitnehmen 280  
     Ein Objekt erblickt das Licht der Welt 281  
     Kontrolle: Du kommst hier nicht durch 283  
     Bei Klassendefinitionen den Überblick behalten 285  
     Tieferer Einblick in die Elementfunktionen der Datenkapsel 287  
     Du darfst hier nur lesen 289  
     Elementfunktionen voll im Einsatz 290  
     Toll, diese Klassenfunktionen 292  
     Objekte erstellen 294  
     Objekte auf die Welt bringen 295  
     Zugriff auf die Öffentlichkeit der Klasse 296  
     Indirekter Zugriff auf die Öffentlichkeit 296  
     Objekte verwenden 297  
     Die Geschichte von Objekten 300  
     Aufbauen und vernichten 303  
     Dienst nach Vorschrift 303  
     Wir übernehmen selbst … 304  
     Konstruktoren mit mehreren Parametern 305  
     Konstruktoren effektiver initialisieren 306  
     Klassenelemente direkt initialisieren 307  
     Am Ende alles ­wieder sauber­machen … 307  
     Frühjahrsputz 308  
     (K)ein Kartenhaus 311  
     Deep inside 313  
     Spezielle Konstruktoren 313  
     Praxis Dr. Schrödinger 316  
     Wohnung von Dr. Schrödinger 318  
     The Big Three 319  
     Spezielle Daten in der Kapsel 320  
     Gute Freunde kann niemand trennen … 322  
     *Gong* Die letzte Runde wird eingeläutet 324  
     Kampfanalyse 329  
  —10—Kino WoW Programmieren = viel Spaß 332  
     Eigene Rechengesetze 333  
     Gestatten: operator 333  
     Gesetze für die Herren Operatoren 334  
     Operatoren nur für Freunde 335  
     Die Pärchen verwenden die Operatoren 336  
     Mit vereinten Kräften 338  
     Glückliche Pärchen 341  
     Einsame Operatoren überladen 345  
     Das einsame Leben der einsamen Operatoren 347  
     Am Ende bleibt ein einsamer Operator 350  
     Weitere Operatoren überladen 352  
     Logisch? Fast immer! 352  
     „Typenverbiegenumwandler“ überladen 352  
     Input-Output-Kompott ... 353  
     Spezielle Operatorüberladungen in der Praxis 355  
     Spezialitäten auf dem Sofa 361  
     Funktionsobjekte 361  
     Indexoperator [] überladen 362  
     new und delete überladen 362  
  —11—Schrödinger macht sein Testament 364  
     Erben ohne Erbschaftssteuer 365  
     Ewig schleichen die Erben 368  
     Damit keiner leer ausgeht 372  
     Jetzt das ­Klein­gedruckte lesen 374  
     Zugriffsrechte für den Beerbten 374  
     News: Konstruktoren vererben 377  
     Das Kleingedruckte in der Praxis 378  
     So macht erben langsam Spaß 381  
     Private Mitglieder durchreichen ... 382  
     Erbe verwenden und erweitern 383  
     Redefinition 384  
     Use me ... 384  
     Unser Anlageberater verwaltet das Erbe 386  
     Ordentlich angelegt 388  
     Konstruktives und destruktives Vererben 390  
     Implizite Klassenumwandlung 392  
     Wer bekommt was ... 393  
     Keiner geht leer aus ... 395  
     Mehrfachvererbung 397  
     Mehrfachvererbung in der Praxis 399  
     Lohnt sich die Mehrfachvererbung ­überhaupt? 402  
     Virtuelles Vererben 404  
     Virtuelle Teilchen verwenden 406  
     Zwischen Virtualität und Realität 407  
     Abstrakte Welten 409  
     Ein alter Bekannter ... 409  
     Abstrakte Vielgestaltigkeit 411  
     Jetzt wird es vielseitig – Polymorphie 412  
     Virtuelle Zerstörungskraft 414  
     Was vom Abstrakten übrig blieb 415  
     Was bist du denn? 416  
     override und final 417  
  —12—Ausstechformen für die Plätzchen 420  
     Funktionen zum Ausstechen 421  
     Verschiedene Teigsorten 423  
     Plätzchen backen 425  
     Am Ende sind nur noch Krümel da … 429  
     Klassen zum Ausstechen 430  
     Klassen-Ausstecher-Elementfunktion definieren 431  
     Klassen-Ausstecher-Elementfunktion überschreiben 432  
     Objekte ausstechen 433  
     Klassen-Ausstecher in der Praxis 434  
     Klassen-Ausstecher in der Wohnung 439  
  —13—Der Schleudersitz für den Notfall 442  
     Versuchen, werfen und auffangen 443  
     Noch ein paar Hinweise für das Werfen 445  
     Jetzt schmeiß schon! 447  
     Was passiert danach …? 448  
     Homerun 451  
     Mit Klassen um sich schmeißen 454  
     Nix wie weg hier 454  
     Schmeißen mit ganzen ­Klassen 456  
     Homerun mit Klassen 459  
     (Standard-)Ausnahmen im Angebot 462  
     What ist dein Problem …? 463  
     Ausnahmen im System 464  
     Wir probieren es aus 465  
     Logischer Fehler: 465  
     Standardausnahme- Kontrolle 469  
     Ausnahme-Spezifikation und noexcept ? 471  
     noexpect 471  
     Hasta la vista, baby 472  
     Ausnahmen verweigern 473  
     Keine Erwartungen 475  
  —14—Unterwäsche, 100 % Baumwolle, Doppelripp 476  
     Schurz, Schürzen, Schürzenjäger 477  
     Strings anlegen und zuweisen 477  
     Zugriff auf die einzelnen ­Zeichen 480  
     Wie groß isses denn? 481  
     Rohe Strings 481  
     Noch mehr Unterwäsche 482  
     Und noch mehr davon 484  
     String konvertieren und manipulieren 486  
     Klamottenkiste 486  
     Such! 487  
     Überladene Operatoren und Ein-/Ausgabe 489  
     Ich kann’s nicht mehr hören: Strings 491  
     Alles sauber dank „Schwarzer Zwerg“ 495  
  —15—Ströme ohne Isolierkabel verwenden 496  
     Gib aus den Strom 497  
     Rohe Eier raus ... 499  
     Mehr formatierter Output bitte 500  
     Wir schwenken die Flagge ... 501  
     Jetzt ist es raus ... 503  
     Wir ändern die Richtung 506  
     Rohe Eier rein ... 506  
     Wo ist mein Input? 508  
     Jetzt ist es drin ... 512  
     Wir manipulieren die Ströme 514  
     Manipulation ist alles ... 517  
     Ordentlich manipuliert ... 521  
     Auch ein Strom hat seine Fehler 523  
     Erst den Strom abstellen ... 525  
     Die Sicherung ist geflogen 526  
     Kann man auch was speichern? 527  
     Datei-Slang 527  
     Vorhandene Ströme für Dateien 528  
     Strom für die Datei anschließen 528  
     Plug-ins für den Dateistrom 529  
     Den Dateistecker ziehen 531  
     Alles gesichert ...? 532  
     Sauber lesbare Sache 532  
     Stück für Stück 533  
     Zeile für Zeile 535  
     Ganze Happen ... 536  
     Wahlfreier Zugriff 537  
     Daten wiederherstellen 538  
     Ein Strom für einen String? 542  
     Schürzenjäger-Strom 544  
     Ohne Isolation 546  
  —16—Ausstechformen für Faule 548  
     Fertigkuchen von Dr. STL …? 549  
     Verschiedene Behälter (Container) 550  
     Algorithmen und Iteratoren 552  
     Besser als „Selbermachen“ 553  
     … und schmeckt auch noch gut! 556  
     Detaillierteres Arbeiten mit sequenziellen Fertigkuchen 559  
     Behälter erstellen 559  
     Zutaten hinzufügen 560  
     Zugriff auf den Teig 561  
     Wie viel passt rein, und wie viel ist drin …? 562  
     Raus damit …! 562  
     Tausch mit mir, oder gib mir alle 563  
     Mixen, sortieren und rühren 563  
     Sequenzielle Fertigkuchen abschmecken 564  
     Bereit zum Essen … 569  
     Detaillierteres Arbeiten mit assoziativen Fertigkuchen 571  
     set und multiset 572  
     map und multimap 573  
     Bitte ein Bit-Feld …! 573  
     Assoziative Kuchen backen 574  
     (multi)set me up, baby! 574  
     Now (multi)map me! 576  
     Bitte ein Bit! 577  
     Auch assoziative Kuchen kann man essen 580  
     Zwischen Fertigkuchen und weiteren Zutaten 582  
     Funktionsobjekte 582  
     Kategorie von Iteratoren 584  
     Iterator-Adapter 586  
     Die Hilfsmittel für Fertigkuchen und Zutaten im Einsatz 587  
     Hilfe für den Iterator 589  
     Allmählich wird es öde … 590  
     Die fleißigen Arbeiter 593  
     Nicht-modifizierende Algorithmen 593  
     Modifizierende Algorithmen 594  
     Löschende Algorithmen 595  
     Mutierende Algorithmen 596  
     Sortierende Algorithmen 597  
     Algorithmen für sortierte Bereiche 598  
     Algorithmen verwenden 599  
     Ende gut, alles gut … 603  
  —17—Schöne neue Welt C 11 606  
     C++ auf dem neuesten Stand(ard) 607  
     auto/decltype 608  
     Einfachere Initialisierung 608  
     Lambda-Funktionen 609  
     Range-based-loop 609  
     Explizite delete- und default-Funktionen 610  
     nullptr 610  
     constexpr 611  
     Ein Konstruktor ruft einen anderen Konstruktor auf 612  
     Move your body 612  
     Neues Zeugs im Einsatz 614  
     auto/decltype 614  
     Lambda-Funktion 615  
     Move my own class 616  
     Cool, das neue Zeugs 617  
     Weitere nützliche Features 618  
     Noch mehr Neuigkeiten ... 620  
     Ein neues Array? 620  
     Eine neue verkettete Liste? 621  
     Hasch? Ist das nicht illegal?! 621  
     Neue Algorithmen 622  
     Tuple? Tulpe? 623  
     Neue Planeten braucht das Universum 624  
     Neue Backmischungen sind auch gut 627  
     Kluge Zeiger 629  
     Ich bin der Klügste hier (shared_ptr) 631  
     Schwacher Zeiger (weak_ptr) 632  
     Egoistischer, aber kluger Zeiger (unique_ptr) 634  
     Klug auch in der Praxis 635  
     Bist du auch so klug ...? 638  
     Von Hieroglyphen und regulären Ausdrücken 640  
     Mini-Sprachkurs zu den ­Hieroglyphen 640  
     Objekt für die Hieroglyphen 644  
     Die Algorithmen für Hieroglyphen 644  
     Suchergebnis analysieren 645  
     Suchen mit Hieroglyphen 646  
     Cleopatra ist da ... 653  
     Parallele Welten 655  
     Viele Fäden erzeugen 656  
     Bist du jetzt ein Faden oder nicht? 658  
     Argumente für den Thread 658  
     Wir nehmen jetzt die Fäden in die Hand 659  
     Nur nicht den Faden verlieren 662  
     Schütze deine Daten 664  
     Ein Schloss für den Mutex 667  
     Sicheres Initialisieren 668  
     Totgesperrt 669  
     Einmal bitte ... 671  
     Am Ende des Fadens ... 673  
     „Konditions“-Variable ...? 673  
     Zusammenfassung 675  
  Index 678  

Kategorien

Service

Info/Kontakt