Forum: PC-Programmierung Buchempfehlung? Aktuelles C++-Buch für C-Programmierer mit C++-Grundlagen


von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Hallöchen!

Weil hier im Thread

Beitrag "Welche Programmiersprache auf µC"

doch einige neue Dinge bzgl. C++ erwähnt werden:

Im Studium und danach hatte ich C++ gelernt und auch bei einigen 
Projekten verwendet (hach, Turbo-Vision :-). OOP, Vererbeung, Templates 
- also alles, was es so in den 90ern gab - sind mir bekannt.

Da ich später fast nur noch für den kleineren Embedded-Bereich 
programmmiert habe, wurde alles µC-mäßige bis heute in C gemacht. Das 
war soweit ok, funktioniert auch gut. Auf dem PC waren es bisher fast 
nur Skriptsprachen (Tcl/Tk, Python) - es hat schlicht ausgereicht.

Aber mittlerweile sind bei C++ doch einige schöne Sachen hinzugekommen 
und ich überlege für neue Projekte umzusteigen, insbesondere weil mit 
den Cortexen (STM32) jetzt auch aufwändige grafische Oberflächen möglich 
werden.

Außerdem möchte ich (mal wieder) einfach Neues lernen :-)

Welches Buch würde sich dazu eignen, einen recht fitten C-Programmierer 
mit leicht eingestaubten C++-Kenntnissen wieder auf aktuelles Niveau zu 
bringen?
Klar, wirklich lernen kann man das nur im Projekt selbst, aber ein 
richtiges physisches Buch mit einer vernünftigen, aktuellen Einführung 
ist doch besser als ein reines Nachschlagewerk oder Internetseiten.

"Der C++ Programmierer" von Ulrich Breymann soll gut sein, neben 
Stroustrup natürlich.

Was gibt es noch, was ist empfehlenswert?

: Bearbeitet durch Moderator
von Wilhelm M. (wimalopaan)


Lesenswert?

Chris D. schrieb:
> Hallöchen!
>
> Weil hier im Thread
>
> Beitrag "Welche Programmiersprache auf µC"
>
> doch einige neue Dinge bzgl. C++ erwähnt werden:
>
> Im Studium und danach hatte ich C++ gelernt und auch bei einigen
> Projekten verwendet (hach, Turbo-Vision :-). OOP, Vererbeung, Templates
> - also alles, was es so in den 90ern gab - sind mir bekannt.
>
> Da ich später fast nur noch für den kleineren Embedded-Bereich
> programmmiert habe, wurde alles µC-mäßige bis heute in C gemacht. Das
> war soweit ok, funktioniert auch gut. Auf dem PC waren es bisher fast
> nur Skriptsprachen (Tcl/Tk, Python) - es hat schlicht ausgereicht.
>
> Aber mittlerweile sind bei C++ doch einige schöne Sachen hinzugekommen
> und ich überlege für neue Projekte umzusteigen, insbesondere weil mit
> den Cortexen (STM32) jetzt auch aufwändige grafische Oberflächen möglich
> werden.
>
> Außerdem möchte ich (mal wieder) einfach Neues lernen :-)
>
> Welches Buch würde sich dazu eignen, einen recht fitten C-Programmierer
> mit leicht eingestaubten C++-Kenntnissen wieder auf aktuelles Niveau zu
> bringen?
> Klar, wirklich lernen kann man das nur im Projekt selbst, aber ein
> richtiges physisches Buch mit einer vernünftigen, aktuellen Einführung
> ist doch besser als ein reines Nachschlagewerk oder Internetseiten.
>
> "Der C++ Programmierer" von Ulrich Breymann soll gut sein, neben
> Stroustrup natürlich.
>
> Was gibt es noch, was ist empfehlenswert?

Scott Meyers: Effective modern C++

Rainer Grimm: C++11

Nicolas Jossuttis: C++ Standard Library

Marius Bancila: Modern C++ Programming Cookbook

https://isocpp.org/faq

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?


von Vincent H. (vinci)


Lesenswert?

Wer die klassischen OOP Konzepte verstanden hat, dem kann man eigentlich 
nur noch Scott Meyers ans Herz legen.
"Effective C++ in an Embedded Environment" (Präsentation!) ist etwa 
gratis online verfügbar: 
https://htrd.su/wiki/_media/zhurnal/2013/03/28/scott_meyers._effective_c_in_an_embedded_environment/effectcppemb.pdf
Obwohl nicht ganz aktuell, wird darin ein wenig Umrissen welches 
Sprach-Feature wie "teuer" ist, eben speziell mit Bedacht auf kleine 
Resourcen. Seine anderen Bücher richten sich dann eher an 
Fortgeschrittene, sind aber sehr sehr informativ.

All zu alte Quellen sollte man nach Möglichkeit meiden, bzw. generell 
alles vor C++11. Ein gutes Beispiel hierfür sind etwa Bücher, in denen 
bei Templates vor "code bloat" gewarnt wird... oder in denen Raw Pointer 
in Kombination mit "new" zu finden sind, etc. etc.


An meinem eigenen Code hab ich beobachtet, dass ich klassisches C++ (und 
damit OOP Konzepte) eigentlich immer weniger und weniger nutze. Hier und 
da wird mal vererbt, aber so Dinge wie 
"Tier->Säugetier->Vierbeiner->Hund->Schäfer" trifft man in der Realität 
eher selten.

Viel wichtiger sind für mich
- templates
- constexpr
- lambdas
- literals
- und "neue" (>=C++11) STL Funktionen wie tuples, optional, variant, 
usw. usf.

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Dr. Sommer schrieb:
> https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

Genau den Link wollte ich auch gerade Teilen :-)

Es gibt wirklich eine Hand voll sehr guter Autoren (vor allem Sutter und 
Meyers) die wirklich gut schreiben können und leider sehr viele 
schlechte Autoren, deren Bücher nur so vor Fehlern strotzen.

von Wilhelm M. (wimalopaan)


Lesenswert?

Torsten R. schrieb:
> Dr. Sommer schrieb:
>> https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
>
> Genau den Link wollte ich auch gerade Teilen :-)
>
> Es gibt wirklich eine Hand voll sehr guter Autoren (vor allem Sutter und
> Meyers) die wirklich gut schreiben können und leider sehr viele
> schlechte Autoren, deren Bücher nur so vor Fehlern strotzen.

Für µC-Practices:

Beitrag "Informationen zu C vs C++ / aka Futter für die Diskussion"

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Super!

Vielen Dank für die sehr guten Informationsquellen - da werde ich mich 
mal durchwühlen und dann das Passende bestellen :-)

: Bearbeitet durch Moderator
von rbx (Gast)


Lesenswert?

Vom Breymann hast du ja schon gehört. + Internet sehr gut zum 
Aktualisieren, Nachschlagen und Übersetzen.

schon älter, aber trotzdem sehr gut:
Accelerated C++ von Koenig und Moo
viele greifen auch gerne zum C++ Primer (Lippman & Co), Geschmackssache?

Tempo/Überblick:
A Tour of C++
und:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/lecture-notes/
Online-Kurs, Länge ein Monat, Arbeitszeit 2-3 Tage pro Woche + 
Hausarbeiten

Sonst noch:
Working Draft: https://isocpp.org/std/the-standard

Williams C++ Concurrency in Action

Vermeidung von funktionalen Fehlern z.B. mit Lamdas:
-> Haskell und Lamda-Kalkül Einführungen, es gibt z.T. sehr gute im Netz
(auch das Buch:
"Parallel and Concurrent Programming in Haskell: Techniques for 
Multicore and Multithreaded Programming" von  Simon Marlow ist Top)

von Gogo (Gast)


Lesenswert?

Sehr praxisnahe, reicht um die größten Patzer zu meiden:

Effektiv C++ programmieren - 55 Möglichkeiten, Ihre Programme und 
Entwürfe zu verbessern

Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.