Aktuelle C++ Buchempfehlung ?



  • Ich werde mich mal mit euren Vorschlägen auseinandersetzten, danke erstmal ... ich bin auf dem Weg zu Buchladen ...ernsthaft 🙂



  • Die nächste Generation von Büchern wird wahrscheinlich erst so in 1-2 Jahren kommen, wenn mal der neue Standard verabschiedet worden ist. Von dem her bist du mit den genannten Werken (auch wenn sie schon ein gewisses Alter haben) nicht schlecht betan. Etwas aktuelleres gibt es schlichtweg nicht.



  • drakon schrieb:

    Etwas aktuelleres gibt es schlichtweg nicht.

    Ja, komme gerade aus dem Buchladen, tote Hose... alles um Jahr 2000 geschrieben, und nur als neue Auflage gedruckt.



  • DeepCopy schrieb:

    Danke drakon ,
    Ich habe selbst den Breymann hier aus dem Jahr 1999 und der hat (einige) gravierende Diskrepanzen was den C++-Standard angeht wie mir scheint.

    Von Breymann gibt es auch ein aktuelles Buch (Der C++ Programmierer).

    Das erste Lehrbuch, was ich gesehen habe, wo z.B. auch RValue-Referenzen und die TR1-Sachen auftauchen.



  • So hier ist es:

    Die C++-Programmiersprache | ISBN: 9783827328236

    Ich hab mir jetzt Stoustrup bei amazon bestellt, Breymann finde ich persönlich nicht so lesenswert,
    da muss man bei jedem Satz dreimal nachfragen was er meint, Stroustrup scheint mir da ein wenig besser zu sein.

    #Die Anderen Buchvorschläge werde ich mir noch nach und nach holen...
    Danke an ALLE!!!



  • Das ist, denke ich ein guter Weg. Aus seinem Buch kann man sehr viel holen und es ist auch ein wunderbares Nachschlagewerk.



  • nn schrieb:

    Von Breymann gibt es auch ein aktuelles Buch (Der C++ Programmierer).

    Das erste Lehrbuch, was ich gesehen habe, wo z.B. auch RValue-Referenzen und die TR1-Sachen auftauchen.

    Jefährlisch. RValue-Referenzen? Ob in dem Buch schon die Regeln nach N2844 drin stehen? Die Regeln wurden ja erst vor ein paar Monaten geändert.

    Ich habe mir gerade die Leseprobe des Buchs angetan: Schon auf der ersten Seite des Kapitels "Exception-sichere Beschaffung von Ressourcen" gibt es -- mal ganz davon angesehen, dass man Resource im Deutschen nur mit einem s schreibt -- Auffälligkeiten:

    Ressource pr = new Ressource(id);
    shared_ptr<Ressource> sptr (pr);  // Falsch
    

    Es könnte sein, dass schon bei der Erzeugung eines Objekts mit new eine Exception auftritt. Der damit verbundenen Sprung des Programmablaufs aus dem aktuellen Kontext zum Beispiel zu einer catch-Klausel führt dazu, dass ein delete nicht mehr möglich ist. Das erzeugte Objekt bleibt unerreichbar im Speicher.

    Wenn new eine Exception wirft, gibt es kein Objekt im Speicher und auch kein Speicherleck. Sein Copy&Swap Muster sieht so aus

    // exception-sicherer Zuweisungsoperator
    Klasse& Klasse::operator=(const Klasse& m) { // Zuweisung
       Klasse temp(m);   // temporäre Kopie
       swap(m);          // wirft keine Exception
       return *this;
    }
    

    Das ist leider sehr schade. Erstens taucht hier swap(m) auf, wobei m eine ref-auf-const ist. Zweitens weiß der Profi, dass man in diesem Beispiel das Kopieren dem Compiler überlässt:

    // exception-sicherer Zuweisungsoperator
    Klasse& Klasse::operator=(Klasse kopie) { // <--- keine ref-auf-const
       swap(kopie);
       return *this;
    }
    

    Gut, einige Fehler sind Flüchtigkeitsfehler (swap(m)), die man dem Mann nicht anlasten kann. Aber die anderen "Patzer" sind nicht so prickelnd. Die Leseprobe des alten Buchs gefiel mir auch nicht so ganz.

    Gruß,
    SP



  • Für Leute die gerade erst angefangen haben und diesen Thread lesen: Ich habe auch das Buch vom Struppi, würde es Anfängern jedoch nicht empfehlen. Das Buch ist vorallendingen auf designtechnischer Ebene geschrieben. Empfehlenswert also für Leute, die Erfahrung haben und ihren Stil verbessern/perfektionieren möchten.



  • [quote="Sebastian Pizer"]

    nn schrieb:

    Schon auf der ersten Seite des Kapitels "Exception-sichere Beschaffung von Ressourcen" gibt es -- mal ganz davon angesehen, dass man Resource im Deutschen nur mit einem s schreibt -- Auffälligkeiten:

    Den Ausführungen über C++ kann ich soweit zustimmen. Der zur Schreibweise von Ressource nicht.

    http://de.wikipedia.org/wiki/Ressource



  • nn schrieb:

    Den Ausführungen über C++ kann ich soweit zustimmen. Der zur Schreibweise von Ressource nicht.

    Die C++ Ausführungen könnte man auch bezweifeln. Kannst du der Zustimmung noch etwas Konkretes hinzufügen? Vielleicht die Stelle im Standard?



  • nn schrieb:

    Den Ausführungen über C++ kann ich soweit zustimmen. Der zur Schreibweise von Ressource nicht.

    Ich nehme fast alles zurück. Ich glaube, der Text zum new muss anders verstanden werden. Angenommen, dass zwischen den beiden Zeilen etwas anderes steht, welches eine Ausnahme wirft, dann haben wir ein Leck.

    Bzl Ressource: Ja, hatte mich geirrt. Es ist genau anders herum. *schäm*



  • Zu der swap-Geschichte fällt mir spontan das hier ein

    http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/

    Bei der shared_ptr Sache würde ich schon, wie im Buch empfohlen, das new in die Initialisierung des Smartpointers schreiben, ganz unabhängig davon ob die andere Variante nun sicher ist oder nicht.



  • Ich hatte Breymann als Dozent in unterschiedlichen Fächern, und kann nur sagen, dass er sehr fähig ist.
    Sein Buch habe ich zwar selbst nicht, jedoch hatte ich schon öfter Azubis und Praktikanten, die es benutzt hatten. Mir sind darin keine groben Schnitzer aufgefallen.



  • Ok, ich überlege mir gerade auch Effective C++ "Auflage: 3., Auflage (30. Januar 2008)" von Scott Meyers zu kaufen.

    Welches Buch zuerst More Effective C++ oder das andere? Bzw. wo sind die Unterschiede?



  • Also zulegen kannst du dir das auch ohne weiteres.

    Also Meyers' Buch besteht eigentlich aus mehr oder weniger unabhänigen Tipps, welche jeweils so durchschnittlich 3-5 Seiten füllen. (wie auch Sutter). Stroustrups Werk allerdings ist da um einiges zusammenhängender und beschäftigt sich eigentlich mit den Grundlagen (welche aber weiter gehen, als ein Anfängerbuch) und ist mehr oder weniger Zusammenhängend.

    Hmm. Welches zuerst.. Schwer zu sagen. Ich denke, dass es nicht so eine Rolle spielt, wenn man die Grundlagen bereits beherrscht und sie schon angewandt hat und mit einigen Problemen vertraut ist, kommt man in jeglicher Reihenfolge klar.

    Oo
    Ich sehe gerade, dass du wahrschenlich gar nicht Effective C++ <-> The C++ Programming Language meinst. Naja. Egal, ich lass das oben mal stehen. 😉
    More Effective C++ ist zwar das neuere Buch von Meyers, allerdings ist die Auflage älter. Und angesichts dessen, dass Effective C++ einige Neuerungen durchgemacht hat, würde ich zuerst schon Effective C++ lesen. (einige raten soger von der Fortsetzung More Effective C++ ab aus diesem Grund).



  • Ja das The C++ Programming Language habe ich schon bestellt (auf Deutsch),
    erstmal ein dickes herzliches Danke für deine Hilfe drakon 🙂 🙂 🙂



  • Kein Problem. 😉



  • So das gehört nun auch zur Sammlung:

    Effektiv C++ programmieren | ISBN: 9783827326904

    Eben bei amazon bestellt, damit sollte mein Wissensdrust erstmal gelöscht sein, so für ein oder zwei Wochen oder so... 🙂



  • DeepCopy schrieb:

    Ok, ich überlege mir gerade auch Effective C++ "Auflage: 3., Auflage (30. Januar 2008)" von Scott Meyers zu kaufen.

    Welches Buch zuerst More Effective C++ oder das andere? Bzw. wo sind die Unterschiede?

    Du meinst welches von "Effective C++" und "More Effective C++" Du zuerst anfangen solltest?

    Erstmal richten sich beide Bücher an Leute, die die Sprache schon kennen und einfach besser programmieren wollen. "More Effective..." habe ich nicht gelesen. Das Inhaltsverzeichniss hat mich nicht richtig umgehauen. Ich finde das erste "Effective C++" schon echt super. Ich habe auch die 3. Auflage (auf Englisch) und kann sie empfehlen. Es lohnt sich auch, die 3. Auflage zu bestellen, da die nochmal schön überarbeitet und inhaltlich neu sortiert worden ist. "More Effective..." sehe ich eher als optionalen Bonus an, denn man nicht unbedingt gelesen haben muss. Die "Fortsetzung" ist auch nicht als Ersatz zu "Effective C++" zu verstehen, sondern als Ergänzung. Aber wie erwähnt, das sage ich, ohne das Buch gelesen zu haben.

    Sonst habe ich hier noch "Modern C++ Design" (A.A.) , "C++ Coding Standards" (Herb Sutter + A.A.) und "C++ Templates - The Complete Guide" (Vandervoorde + Josuttis) hier liegen. Ist alles schon recht nett, aber vielleicht auch viel zu viel für den Anfang 🙂

    Gruß,
    SP



  • Wollte mich mal rückmelden, heute sind alle Bücher von amazon vollständig eingetroffen, Die C++ Programmiersprache (Bjrane Stroustrup) und Effektiv C++ Programmieren (Scott Meyers),

    Erstes Fazit: Jedes dieser Bücher ist sein Geld wert, Stroustup über STL und Grundlagen (sehr (sehr) umfangreich das Buch), Meyers 55 sehr gute und leicht und nett lesbare Tipps wie man C++ anhand von Richtlinien Fallstricke viel besser in Griff bekommt, ausserdem hat auch ein Kapitel über TR1 (boost). Alle Bücher kann ich (soweit es mein Wissen zulässt) wärmstens empfehlen.


Anmelden zum Antworten