C++ Primer v.s. C++ von A bis Z



  • Artchi schrieb:

    Was ist denn heute das Problem am Image von C++? Nämlich das angebllich immer "der komplizierte Weg" gegangen wird. Es gibt da einen User hier im Forum, der das immer wieder sagt... und das kommt meistens daher, das die C++-Programmierer nicht die Standard-Lib kennen und nicht benutzen.

    Sehe ich ebenso. Wenn dann Probleme geschildert werden und man std::vector oder std::string vorschlägt, kommt dann immer: Soweit bin ich noch nicht im Buch (oder ähnliches).

    Wer hier vorwirft das man heute viel zu viel C++ lernt, soll mir erstmal Zeigen wo das bitte schön so ist. Eher hat man diverse C-Kompatibilitäts-Probleme bei Anfängern. Und C++ mag zwar weitgehend C-Kompatibel sein, C++ ist dennoch nicht C! Wer das Wissen braucht, oder sich für die Details interessiert kann sich jederzeit noch nachträglich damit vertraut machen. Ich halte ein gewisses Grundwissen auch für sinnvoll, aber sehe es für wichtiger an, wenn jemand erstmal auf sicheren Boden beginnt (Beispiel std::string) und schnell ein erstes Erfolgserlebnis bekommt, als sich von Anfang an mit der Pointerproblematik beschäftigen zu müssen, bevor er auch nur den ersten Text zusammensetzen und ausgeben kann.

    Das ist etwa so als würde man jemanden daran hindern mit Kreide an einer Tafel zu schreiben, wenn er nicht vorher die chemische Zusammensetzung der Kreide kennt.

    Man kann auch ohne C-spezifische Kenntnisse ein C++ Programm schreiben, und sich das Wissen, wenn es nötig oder sinnvoll ist, bei Bedarf aneignen.



  • asc schrieb:

    Man kann auch ohne C-spezifische Kenntnisse ein C++ Programm schreiben, und sich das Wissen, wenn es nötig oder sinnvoll ist, bei Bedarf aneignen.

    Ist es wieder Zeit für diese Diskussion? Na dann ...

    Also, ich widerspreche hier. Weil es meiner Erfahrung nach eigentlich selten bis nie darum geht C++ an sich zu lernen.

    An den Hochschulen wird in den Informatik-Grundkursen eigentlich immer mit der Implementierung von dynamischen Datenstrukturen (Listen, Bäumen, Mengen ...) sowie Suchalgorithmen, Sortieralgorithmen usw. begonnen - also praktisch pure Zeigermanipulation.

    Ob Pascal, Java, C, C++, ode was auch immer, es läuft immer darauf hinaus obige Konzepte zu verstehen. Gleichzeitig habe ich es noch nie erlebt, dass z.B. C-lastiger Programmierstil irgendwie als problematisch angesehen wurde bzw. überhaupt thematisiert wurde.



  • Mitleid schrieb:

    Also, ich widerspreche hier. Weil es meiner Erfahrung nach eigentlich selten bis nie darum geht C++ an sich zu lernen.

    Selbst im Studium hatte ich erst Klassen der (damals noch nicht ganz standardisierten) C++ Bibliothek, bevor wir wild mit Zeigern jonglierten. Den es geht um mehrere Bereiche, und der erste ist auch, Ergebnisse in irgendeiner Form auszugeben (und da ist std::string und std::cout nicht verkehrt) und dann wie man bestimmte Mechanismen einsetzt.

    Mitleid schrieb:

    An den Hochschulen wird in den Informatik-Grundkursen eigentlich immer mit der Implementierung von dynamischen Datenstrukturen (Listen, Bäumen, Mengen ...) sowie Suchalgorithmen, Sortieralgorithmen usw. begonnen - also praktisch pure Zeigermanipulation.

    Und auch dafür muss man nicht erst C-Spezifische Dinge lernen, sondern auch da reicht es die Bereiche zu erklären die man benötigt, und die C++ Standardbibliothek kann dennoch für Ausgaben etc. sinnvoll sein.

    Mitleid schrieb:

    Gleichzeitig habe ich es noch nie erlebt, dass z.B. C-lastiger Programmierstil irgendwie als problematisch angesehen wurde bzw. überhaupt thematisiert wurde.

    Ich schon, im Berufsleben, und teilweise sogar im Studium.



  • OSKiel schrieb:

    Also ich brauche ein Buch wo ich nachschlagen kann wenn ich z.B. nicht weiß wie man z.B. eine if-schleife aufbaut...

    FAILED...



  • asc schrieb:

    Ich halte ein gewisses Grundwissen auch für sinnvoll, aber sehe es für wichtiger an, wenn jemand erstmal auf sicheren Boden beginnt (Beispiel std::string) und schnell ein erstes Erfolgserlebnis bekommt, als sich von Anfang an mit der Pointerproblematik beschäftigen zu müssen, bevor er auch nur den ersten Text zusammensetzen und ausgeben kann.

    Sehe ich ganz genauso. Das ist einer der Gründe warum ich auch den C++-Primer jedem Anfänger sofort empfehlen würde, denn da kommt z. B. (wie schon erwähnt) der std::string vor dem C-String.

    Ad aCTa schrieb:

    [...]bzw. wer immer nur std::list benutzt, ohne auch mal selber eine Template-basierte Verkettete Liste gebaut zu haben, der hat wirklich was verpasst und kann nicht behaupten, C++ in all seinen Facetten kennengelernt zu haben, denn C gehört immernoch zu C++. 😉

    Wo ich deinen Beitrag gelesen habe fiel mir noch ein kleiner Nachtrag ein, und zwar das man auch im C++-Primer eine Template-basierte Verkette Liste zusammenbaut. Es werden dabei 2 - 3 Elementfunktionen ausgelassen die man dann selbständig als Übung implementieren darf. So gesehen verpasst man mit dem Buch nichts. 😉



  • sunny31 schrieb:

    OSKiel schrieb:

    Also ich brauche ein Buch wo ich nachschlagen kann wenn ich z.B. nicht weiß wie man z.B. eine if-schleife aufbaut...

    FAILED...

    Lol hast du deswegen extra eine Domain gekauft oder gabs das schon 😃 😃



  • [MOP] schrieb:

    sunny31 schrieb:

    OSKiel schrieb:

    Also ich brauche ein Buch wo ich nachschlagen kann wenn ich z.B. nicht weiß wie man z.B. eine if-schleife aufbaut...

    FAILED...

    Lol hast du deswegen extra eine Domain gekauft oder gabs das schon 😃 😃

    Hehehe 😃

    Nein, die gehört nicht mir. Find die Seite einfach nur krass.



  • Ich überlege neben C++ von a bis z ein weiteres Buch zu kaufen vielleicht C++ Primer oder das bekannte C++ Buch von Bjarne Stroustrup. Ich weiß nicht, ob es sich lohnt C++ Primer zu kaufen, wenn man schon C++ von A bis Z hat, deswegen das Buch von Stroustrup. Allerdings weiß ich nicht, ob ich da überhaupt was verstehe mit meinem Englisch (9.Klasse Gymnasium) 🙄
    Was würdet ihr mir empfehlen? Kennt ihr noch andere Bücher?

    PS: Ich würde sagen ich bin ein C++ Anfänger bis Fortgeschrittener, also die Grundlagen kann ich, oder ist das zu wenig um Stroustrups Buch überhaupt zu verstehen 😉



  • Stroustrup's Buch "The C++ Programming Language" gibt es auch auf Deutsch, logischerweise mit deutschem Titel.
    Wolf schreibt in seinem Buch ja selber, dass er mit diesem Buch die Grundsteine für dieses Buch legt. Ich habe es jedenfalls so gemacht. Okay, vor diesem Schritt griff ich zu "Effektiv C++ Programmieren". Anschließend habe ich es noch mal probiert, das Buch zu lesen, und nach einer Eingewöhnungszeit geht es. Es ist auf jeden Fall kein Fehler, dieses Buch zu kaufen, aber man genießt es eher in kleinen Häppchen.



  • Ok Danke, werds mal mit der Übersetzung probieren 😉
    Hier das ganze Buch online und auf Deutsch 😃
    Aber 1000 Seiten sind dann doch zu viel zum Ausdrucken 😉



  • Hier das ganze Buch online und auf Deutsch 😃

    Nicht das ganze Buch, die Hälfte der Seiten ist nicht in der Vorschau verfügbar -)

    Das Buch lohnt sich auf jeden Fall zu kaufen, auch wenn man evtl. erst einige Seiten nicht direkt versteht, aber man kann es ja dann später nochmal lesen (die Buchstaben fallen ja beim Lesen nicht raus -).



  • Th69 schrieb:

    Das Buch lohnt sich auf jeden Fall zu kaufen, auch wenn man evtl. erst einige Seiten nicht direkt versteht, aber man kann es ja dann später nochmal lesen (die Buchstaben fallen ja beim Lesen nicht raus -).

    Das kann man auch anders sehen. Das Buch von Stroustrup ist über 10 Jahre alt und enthält fast nichts was nicht auch im erwähnten Primer stehen würde. Dort steht es aber dem aktuellen Standard entsprechend.

    Wenn schon ein Buch mit der didaktischen Qualität des Stroustrup dann doch gleich:

    The C++ Standard | ISBN: 0470846747



  • Mitleid schrieb:

    Das kann man auch anders sehen. Das Buch von Stroustrup ist über 10 Jahre alt und enthält fast nichts was nicht auch im erwähnten Primer stehen würde. Dort steht es aber dem aktuellen Standard entsprechend.

    Ich bezweifle, dass in dem Buch so viel detailiert erklärt wird, wie im Stroustrup..
    Und ja obwohl das Buch ein paar Jahre auf dem Buckel hat ist es trotzdem dem aktuellen Standard entsprechend, denn der ist nocht älter. (mal abgesehen von 2003, aber ich denke, dass da Änderungen ins Buch gefunden haben).



  • Es gibt keine signifikanten Unterschiede zwischen C++98 und C++03. Das Buch ist das detaillierteste, allgemeine Buch über C++, das ich kenne.



  • drakon schrieb:

    Ich bezweifle, dass in dem Buch so viel detailiert erklärt wird, wie im Stroustrup..

    Oh doch, "das Buch" geht auch ziemlich in die Tiefe und die Autoren sind nicht minder kompetent, im Gegenteil. Wir haben hier die wichtigsten C++ Bücher rumliegen und ich kann mich nur an einen Fall erinnern, wo ich tatsächlich den Stroustrup in die Hand nehmen MUSSTE, weil es einen Verweis auf eine Stelle darin gab und das dort besprochene Thema tatsächlich nirgends sonst zu finden war (jedenfalls nicht auf die Schnelle).

    drakon schrieb:

    Und ja obwohl das Buch ein paar Jahre auf dem Buckel hat ist es trotzdem dem aktuellen Standard entsprechend, denn der ist nocht älter. (mal abgesehen von 2003, aber ich denke, dass da Änderungen ins Buch gefunden haben).

    Von 2003 hat sicher nichts ins Buch gefunden, denn die letzte Übersetzung stammt aus dem Jahre 2000 und das Original (die "Special Edition") aus dem Jahr 1997. Aber, wenn du sagt die Änderungen (Korrekturen) am Standard von 1998, die in der 2003er-Version gemacht wurden, sind nicht so bedeutend, dann hast du da natürlich ein Argument.

    Dennoch, wer den Stroustrup empfielt, sollte immer anfügen, dass es mehr eine Sprachbeschreibung als ein Lehrbuch ist.

    Man schlage einfach die 3 Bücher
    The C++ Programming Language | ISBN: 0201700735C Plus Plus Primer | ISBN: 0201721481The C++ Standard | ISBN: 0470846747
    auf und lege sie nebeneinander, dann erkennt man sofort die Ähnlichkeiten zwischen dem Standard und dem Buch von Stroustrup. Also, wenn man es schon so genau wissen will (z.B. vollständige Syntaxdiagramme, vollständig abgedruckte Header-Dateien, usw. ...) dann kann man auch gleich zum aktuellen Standard greifen, der enthält noch ein paar Details mehr.



  • Ad aCTa schrieb:

    Das Buch ist das detaillierteste, allgemeine Buch über C++, das ich kenne.

    Was meinst du mit "allgemeine Buch"?



  • Naja, wenn es um tiefgreifendere Sachen zu ganz speziellen Themen geht, sind andere Bücher besser. Das schreibst Stroustrup aber auch selber bei betreffenen Stellen und gibt evtl. Literaturverweise an.
    Mir ging es zuletzt so im Thema Streams: Er erklärt es sehr schön und toll, wenn man die IOStream-Library aber erweitern möchte, reicht das einfach nicht. Ich meine, ein ganzes Buch bis ins kleinste Detail von ISO-C++ wäre unmöglich.



  • Mitleid schrieb:

    drakon schrieb:

    Und ja obwohl das Buch ein paar Jahre auf dem Buckel hat ist es trotzdem dem aktuellen Standard entsprechend, denn der ist nocht älter. (mal abgesehen von 2003, aber ich denke, dass da Änderungen ins Buch gefunden haben).

    Von 2003 hat sicher nichts ins Buch gefunden, denn die letzte Übersetzung stammt aus dem Jahre 2000 und das Original (die "Special Edition") aus dem Jahr 1997. Aber, wenn du sagt die Änderungen (Korrekturen) am Standard von 1998, die in der 2003er-Version gemacht wurden, sind nicht so bedeutend, dann hast du da natürlich ein Argument.

    Dennoch, wer den Stroustrup empfielt, sollte immer anfügen, dass es mehr eine Sprachbeschreibung als ein Lehrbuch ist.

    Ok, mit den Jahren habe ich mich wohl ein wenig verschätzt (habe nicht genau nachgeschaut). Aber er hat sich ja an den Draft gehalten und ich denke, wenn sich was geändert hätte, hätte es recht schnell eine Neuauflage gegeben. Daher hält sich das Buch sicher genauestens an den Standard.

    Hmm. Ich denke es ist nicht ein Lehrbuch, dass vielen liegt und es daher eher als Referenz sehen. Ich persönlich fand es nicht so schlimm. Ist aber, denke ich recht Ansichtssache. Die anderen Bücher sind natürlich auch zu empfehlen.

    Ad aCTa schrieb:

    Ich meine, ein ganzes Buch bis ins kleinste Detail von ISO-C++ wäre unmöglich.

    Dann hättest du ja den Standard selbst. 😉 - Die Kunst liegt das nötige von dem unnötigen zu trennen. Und das überlasse ich gerne jemandem, wie Stroustrup. Ich habe mal versucht den Standard zu lesen (wie man halt ein Lehrbuch liest), aber das kommt nicht gut.

    Mitleid schrieb:

    Also, wenn man es schon so genau wissen will (z.B. vollständige Syntaxdiagramme, vollständig abgedruckte Header-Dateien, usw. ...) dann kann man auch gleich zum aktuellen Standard greifen, der enthält noch ein paar Details mehr.

    Das ist der kleine Unterschied, den ich an Stroustrups Buch dem Standard bevorzuge. Stroustrup's Buch ist lesbar. Der Standard in dem Sinne nicht. Der Standard muss alles so genau und penibel beschreiben, dass es sich sehr oft mit jeder Kleinigkeit wiederholt. In einem Buch kann/muss man das auslassen, damit sich der Leser, der das Buch liest nicht gleich übergeben muss. Man kann viele Sachen aus dem Buch einfach mal implizit annehmen.
    z.B muss ja nicht explizit gesagt werden, dass auch Memberfunktionen beliebig viele Parameter übernehmen können, wenn das bereits bei normalen Funktionen gesagt wird. So etwas kann man einfach mal annehmen und das stimmt dann auch meistens. Wenn man es aber exakt wissen will, dann muss mal wohl im Standard nachschlagen und da lesen, dass es auch gilt. (was wahrscheinlich auch so ist).


Anmelden zum Antworten