Gutes C++ Buch!



  • Also ich geb mal die Bücher an die in diesem Forum immer empfohlen werden:
    - Effektiv C++ programmieren
    - C++ Primer
    und evt. noch "Die C++ Programmiersprache" von dem Erfinder von C++ (kann den namen nicht schreiben ist so kompliziert 😉 ).

    Das Thema Oberflächenprogrammierung ist ziemlich komplex. Du solltest damit erst beginnen wenn du C++ einigermaßen beherrschst. Dann musst du dich für ein Framework entscheiden (s. dazu die FAQ vom GUI Programmierung-Unterforum).
    Unter Windows kann man direkt mit der Winapi solche Programme schreiben, was aber kompliziert ist. Die Winapi ist kein richtiges Framework, sondern die in Windows eingebaute Schnittstelle um Programme zu schreiben. Man sollte ausserdem noch bemerken, dass sie in C gehalten ist. Aber du kannst sie dir trotzdem später einmal anschauen.
    Ein gutes Buch dazu ist Windows Programmierung von Charles Petzold.

    Grüsse und viel Spass beim lernen
    player424



  • player4245 schrieb:

    Also ich geb mal die Bücher an die in diesem Forum immer empfohlen werden:
    - Effektiv C++ programmieren
    - C++ Primer
    und evt. noch "Die C++ Programmiersprache" von dem Erfinder von C++ (kann den namen nicht schreiben ist so kompliziert 😉 ).

    "Effektiv C++ programmieren" (von S. Meyers) ist kein Buch zum C++ lernen, sondern ein sehr, sehr, sehr gutes und empfehlenswertes 2. Buch, das man lesen sollte sobald man die Sprache ein bisschen beherrscht. "Die C++ Programmiersprache" (von B. Stroustrupp) ist ebenfalls als Anfaengerbuch nur sehr maessig geeignet, sondern IMO eher als 3. oder 4. Buch zu empfehlen, wenn man sich wirklich dafuer interessiert. Der "C++ Primer" und "Thinking in C++" sind hingegen beides sehr gute Buecher, wobei Thinking in C++ den Vorteil hat, dass es gratis im Netz verfuegbar ist (wenn Zeit vorhanden beide Volumes durcharbeiten, auch im 2. steckt noch 'ne Menge Wissen!).

    Was GUI angeht stimme ich player4245 zu, wobei ich die WinAPI (wie sie im Petzold beschrieben wird) nicht empfehlen wuerde, es gibt wesentlich bessere und modernere Frameworks fuer C++. Aber ich wuerd erstmal ein bisschen C++ lernen und dann in die verschiedenen Frameworks reinschnuppern, dann merkst du bald was dir gefaellt. 🙂



  • Matzi schrieb:

    ...ILS... Eigentlich geht es mir ... um die guten Unterlagen und die Unterstütztung.

    ILS in Kombination mit guten Unterlagen/Unterstützung höre ich nur sehr, sehr selten (Gerade wenn es um C++ geht). Zumindest das was ich bislang davon mitbekommen habe deutet darauf hin, das bei ILS keine auch nur halbwegs aktuelle C++ Kenntnisse vermittelt werden. Ich hoffe das hat sich gebessert (Nur glaub ich das eher nicht).

    Matzi schrieb:

    Kann mir vielleicht jemand ein wirklich gutes Buch empfehlen wo man C++ erlernt sowie auch die Oberflächenprogrammierung mit Visual C++.

    Ich kenne KEIN gutes C++ Buch das neben C++ Grundlagen auch noch die Oberflächenprogrammierung lehrt. Dies liegt alleine schon daran, das es unter C++ keine standardisierte GUI-Bibliothek gibt.

    In der Regel geht man in 2 (oder besser 3) Schritten vor:
    a) Lernen von C++ (ohne GUI) über Bücher wie den "C++ Primer" oder "Thinking in C++"
    b) [Kann ggf. später folgen, halte ich aber für sinnvoll] Vertiefen der C++ Kenntnisse (z.B. Effektiv C++ programmieren, Bücher über die C++ Standardbibliothek), vielleicht auch mal die boost-Bibliotheken anschauen...
    c) Abhängig von der gewünschten GUI-Bibliothek weiterführende Lektüre suchen

    Für a und b braucht man alleine schon mehr als ein Jahr.



  • Hier findest du Volume 1 & 2 von "Thinking in C++":
    http://eckelbooks.starlinger.org/
    Das erste geht auf C++ an sich ein und vermittelt zudem noch allgemeine Programmierkenntnisse, das zweite geht dann Hauptsächlich auf Exceptions (warum auch immer das nicht schon im ersten ist), die Standard-Bibliothek und weiterführende Themen ein.



  • Bücher, pfff... learn-by-doing 🙂



  • Man könnte ja auch dem gesunden Menschenverstand folgen und erstmal in die FAQ schauen, weil sich die Frage nach einem guten Buch bestimmt des öfteren vorkommt. Wenn man das tut findet man - oh Wunder! - schnell einen Thread: "Bücher: C++ Lernen - passende Lektüre und richtiger Anfang".

    In diesem Sinne: Bitte erst suchen, dann fragen. (siehe dazu bitte auch hier)



  • Matzi schrieb:

    ... Die Unterlagen sind wirklich gut, aber der Kurs kostet über 2000 Euro.

    Über 2000 Euro, für was? Ich habe mir das vor vielen Jahren selbst (autodidaktisch) beigebracht von FORTRAN, PASCAL, C usw. kommend. Wirklich gute Bücher zum Thema sind selten, oft toplastig auf spezielle Compileroberflächen ausgerichtet oder gehen zu schnell in die Tiefen der 'Objektorientierten Programmierung'. Mir haben in den Einstieg drei Bücher geholfen, deren Titel ich aber nicht mehr voll parat habe. C++ für Dummies (deutsch), Hellweg(?) (deutsch) und ein amerikanischer Autor. Man muss in C++ nicht sofort alles wissen und können. Eine gute Grundlage ist und bleibt ANSI-C. Die zusätzlichen Möglichkeiten lernt man durch eigenes Ausprobieren. Du bist E-Techniker, da liegen die Schwerpunkte doch woanders!



  • Wer C++ in einem Buch für C++ Anfänger lernt, der lernt in 95% der Fällen eher C als C++. Ich kann nur GANZ STARK folgendes Buch empfehlen (sobald man die C++ basics einigermaßen kann):
    C++ FAQs

    Man kann noch so gut Algorithmen entwickeln, aber wenn man nicht diszipliniert und durchdacht Sachen wie RAII, Exception Handling, Namenskonventionen usw. anwendet, dann wird man auch niemals ein guter C++ Programmierer sein (sondern höchstens ein guter C Programmierer)...

    mfg, René~



  • NewSoftzzz schrieb:

    Wer C++ in einem Buch für C++ Anfänger lernt, der lernt in 95% der Fällen eher C als C++.

    Kommt vor allem auf das Alter des Buches an. Aktuelle Bücher sind inzwischen auch so weit, dass sie nichtmehr den Weg C->C++ gehen.



  • pumuckl schrieb:

    Kommt vor allem auf das Alter des Buches an. Aktuelle Bücher sind inzwischen auch so weit, dass sie nichtmehr den Weg C->C++ gehen.

    Dann fehlen dem lernenden aber einige Grundlagen, die er gebrauchen könnte. Z.B. das Verständnis, was ein Programm überhaupt machen soll und wie. Welcher Fahranfänger setzt sich gleich in einen Formel-1-Rennwagen? Ich finde keine geeigneten neuen Bücher, mit denen man für den nachgefragten Zweck etwas anfangen könnte.



  • berniebutt schrieb:

    pumuckl schrieb:

    Kommt vor allem auf das Alter des Buches an. Aktuelle Bücher sind inzwischen auch so weit, dass sie nichtmehr den Weg C->C++ gehen.

    Dann fehlen dem lernenden aber einige Grundlagen, die er gebrauchen könnte. Z.B. das Verständnis, was ein Programm überhaupt machen soll und wie.

    Wieso braucht man dafür C? Alleine die Threads von Neulingen in diesem Forum, die mit C angefangen haben, weisen darauf hin, dass das nicht unbedingt der beste Weg ist. Man lernt veraltete Low-Level-Techniken, die in C++ meist nicht mehr verwendet werden, aber wegen der Abwärtskompatibilität praktischerweise weiterhin funktionieren. Entsprechend fehlt oft die Motivation für einen Umstieg, und umständliche Vorgehensweisen und deren Probleme setzen sich fest. Ein Umlernen gestaltet sich meist schwieriger als unvoreingenommenes Neu-Lernen.

    Man muss C nicht beherrschen, um C++ lernen zu können. Ich behaupte sogar, dass es sich eher negativ auswirkt (von wenigen vorbildlichen Anfängern, die bisher Gelerntes vorerst vergessen, mal abgesehen). Dinge wie Zeiger lernt man in C++ ebenso gut kennen, doch nebenbei wird einem auch beigebracht, von fehleranfälligen Low-Level-Mechanismen wie manueller Speicherverwaltung zu abstrahieren und moderne Konzepte wie Objektorientierung und generische Programmierung einzusetzen.

    berniebutt schrieb:

    Welcher Fahranfänger setzt sich gleich in einen Formel-1-Rennwagen?

    Welcher Fahranfänger setzt sich vor dem Fahren mit Thermodynamik und Mechanik auseinander?



  • Nexus schrieb:

    Man muss C nicht beherrschen, um C++ lernen zu können. Ich behaupte sogar, dass es sich eher negativ auswirkt (von wenigen vorbildlichen Anfängern, die bisher Gelerntes vorerst vergessen, mal abgesehen). Dinge wie Zeiger lernt man in C++ ebenso gut kennen, doch nebenbei wird einem auch beigebracht, von fehleranfälligen Low-Level-Mechanismen wie manueller Speicherverwaltung zu abstrahieren und moderne Konzepte wie Objektorientierung und generische Programmierung einzusetzen.

    Schön, dann muss man aber gleich sehr viel auf einmal lernen. Ich behaupte, jeder low-level-Einstieg bringt Anfängern mehr Verständnis für das, was er tun will und noch nicht voll beherrscht!



  • berniebutt schrieb:

    Schön, dann muss man aber gleich sehr viel auf einmal lernen.

    Ach, ist es besser bestimmte Bereiche zweimal zu lernen? Muss ich erst Bayrisch lernen, damit ich Hochdeutsch lernen darf?

    berniebutt schrieb:

    Ich behaupte, jeder low-level-Einstieg bringt Anfängern mehr Verständnis für das, was er tun will und noch nicht voll beherrscht!

    Man kann low-level auch in C++ Programmieren, ohne zusätzlich die C-Spezialitäten lernen zu müssen. Man muss nicht die C-Kompatibilitätsheader verwenden, wo es C++ Alternativen gibt.



  • berniebutt schrieb:

    Schön, dann muss man aber gleich sehr viel auf einmal lernen. Ich behaupte, jeder low-level-Einstieg bringt Anfängern mehr Verständnis für das, was er tun will und noch nicht voll beherrscht!

    Ich denke das ist einfach sehr subjektiv. Ich persönlich habe auch lieber einen detailierten Einstieg, aber viele wollen zuerst nicht mit so viel Zeugs konfrontiert werden.
    Z.B bei uns an der Uni wird erstmal Eiffel eingeführt. Eine Sprache, welche ohne jegliches Low Level Zeugs auskommt. Viel sind damit anscheinend sehr gut zu recht gekommen gleich mit Klassen zu arbeiten und sich Gedanken über Polymorphie zu machen, anstatt zuerst mal über die Implementierung von Arrays, Umgang mit Zeiger usw. zu beschäftigen.

    Ich habe zwar auch zuerst mal C gemacht, aber wirklich programmieren gelernt habe ich richtig gleich mit C++.



  • Das sieht mir hier verdächtig nach einem weiteren "C vs. C++"-Flamewar aus und hat wohl kaum noch was mit Buchempfehlungen für den OP zu tun. Ich denk mal wenn da nichts konstruktives zum Thema mehr kommt mach ich hier dicht. Die Diskussion mit welcher Sprache man anfangen sollte hatten wir schon gefühlte 70mal ohne Ergebnis.



  • pumuckl schrieb:

    Das sieht mir hier verdächtig nach einem weiteren "C vs. C++"-Flamewar aus und hat wohl kaum noch was mit Buchempfehlungen für den OP zu tun. Ich denk mal wenn da nichts konstruktives zum Thema mehr kommt mach ich hier dicht. Die Diskussion mit welcher Sprache man anfangen sollte hatten wir schon gefühlte 70mal ohne Ergebnis.

    Hmm. Scheint so.

    @OP
    Es sei dir gesagt, dass du definitiv kein C können musst, um C++ zu lernen. Viele (unter anderem auch ich) haben das auch so hingekriegt. Jeder der was anderes behauptet liegt falsch. (Beweis durch Gegenbeispiel. ;))
    Aber gewisse Paralellen lassen sich nicht abstreiten, aber gewisse Ähnlichkeiten hat jede Sprache anderen.



  • Vielen Dank für die schnellen Antworten.



  • Was ist mit Breymann, ich denke das ist nicht zu C-lastig.
    Ist nicht ganz einfach, aber geht sehr in die Tiefe.
    Ich glaube den gibt es mittlerweile in der 9. Auflage.



  • Der C++ Programmierer - Ulrich Breymann

    Sehr gutes Buch!



  • Ulrich Breymanns Buch kann man bedenkenlos empfehlen! Sehr aktuell, echtes C++, sehr umfangreich, kein C und trotzdem werden Bits & Bytes erklärt.


Anmelden zum Antworten