# Suche Buchempfehlung für C++



## JCODA (31. Jul 2019)

Hallo zusammen,

könnt ihr mir ein gutes Lehrbuch empfehlen, welches die Feinheiten von "modernem C++" vermittelt? 

Ich benötige weder eine "Einführung in die Programmierung" noch ein Nachschlagewerk, welches über 500 Seiten groß ist. Nachschlagewerke sind für mich digital wesentlich handlicher. 

Ich frage speziell hier, im Java-Forum, da es vielleicht auch den ein oder anderen Java-Entwickler gibt, welcher von Java nach C++ gewechselt ist. Wenn Ihr da vielleicht Tipps habt, nehme ich die sehr gerne zur Kenntnis. 

Viele Grüße


----------



## Xyz1 (31. Jul 2019)

Der C++-Programmierer: C++ lernen - professionell anwenden - Lösungen nutzen. Aktuell zu C++17 https://www.amazon.de/dp/3446448845/

Habe ich herumliegen, man benötigt so 1/10 davon, die Vorgänger-Reihe hab ich auch


----------



## temi (31. Jul 2019)

Tobias-nrw hat gesagt.:


> Der C++-Programmierer: C++ lernen - professionell anwenden - Lösungen nutzen. Aktuell zu C++17 https://www.amazon.de/dp/3446448845/
> 
> Habe ich herumliegen, man benötigt so 1/10 davon, die Vorgänger-Reihe hab ich auch



Als ich noch C++ gerlernt habe, war das genannte Buch die gängige Empfehlung.


----------



## Xyz1 (31. Jul 2019)

temi hat gesagt.:


> Als ich noch C++ gerlernt habe, war das genannte Buch die gängige Empfehlung.


Was zur Folge hat, dass alle anderen Bücher zu diesem Thema Schrott sind


----------



## M.L. (31. Jul 2019)

Eine Nennung: Design Patterns in Modern C++ und Blogs Modernes C++ bei heise.de
Ist allerdings auch eine Frage, ob der verwendete Compiler den C++-Code auch versteht.


----------



## Xyz1 (31. Jul 2019)

M.L. hat gesagt.:


> Eine Nennung: Design Patterns in Modern C++ und Blogs Modernes C++ bei heise.de
> Ist allerdings auch eine Frage, ob der verwendete Compiler den C++-Code auch versteht.


Er will glaube ich keine englischsprachige Literatur


----------



## temi (31. Jul 2019)

Ergänzend wären noch die "Effektive C++" Bücher von Scott Meyers (auch auf deutsch erhältlich) zu empfehlen. Das sind aber keine Lehrbücher im Sinne von "C++ lernen". Edit: Ich sehe gerade, dass du das auch nicht suchst, insofern würde das passen.



Tobias-nrw hat gesagt.:


> Was zur Folge hat, dass alle anderen Bücher zu diesem Thema Schrott sind



Sorry, ich kann dir nicht folgen.


----------



## Xyz1 (31. Jul 2019)

temi hat gesagt.:


> Sorry, ich kann dir nicht folgen


Das ist eine Tatsache, keine Schlussfolgerung. Musst Du nicht verstehen, ist so ähnlich wie der Klimawandel - diesen gibt es auch wenn man es nicht gern hat.


----------



## temi (1. Aug 2019)

Tobias-nrw hat gesagt.:


> Das ist eine Tatsache, keine Schlussfolgerung.





Tobias-nrw hat gesagt.:


> Was zur Folge hat, ...



Klingt für mich wortwörtlich nach einer Schlussfolgerung...


----------



## kneitzel (1. Aug 2019)

temi hat gesagt.:


> Klingt für mich wortwörtlich nach einer Schlussfolgerung...


Nunja, den Unterschied zwischen ‚Meinung‘ und ‚Tatsache‘ muss man nicht kennen, wenn man hier schreibt. Denn es ist ja ganz offensichtlich schlicht seine Meinung, dass andere Bücher Schrott sind. (Wobei ich mich frage, wie viele andere Bücher Tobias kennt und wieso diese denn Schrott sind. Es gab ja auch noch paar andere Vorschläge: Wieso sind die Schrott? Zwei waren auf Englisch, das schien da evtl. der Grund sein. Wäre ja nett, wenn Tobias da seine Meinung etwas begründen würde...
(Ich lese übrigens fast ausschließlich Englische Fachbücher, selbst wenn es eine Übersetzung geben sollte.)

Und wie man von ‚damals gängige Empfehlung‘ zu ‚andere Bücher sind Schrott‘ kommt, entzieht sich mir auch... 
(Zumal das erste eine Aussage aus der Vergangenheit ist und es zu heute ja weitere Entwicklungen gibt.)

Und wenn nur 1/10 des Buches benötigt wird: Dann sind 9/10 unnötig/nicht zu gebrauchen? Wäre das kein Kriterium evtl. für ein schlechtes Buch?

Aber abseits von diesen Gedanken habe ich etwas anderes einzuwerfen:
Wenn ja keine generelle Einführung gewünscht ist sondern nur "modernes C++", sprich aktuelle Sprachfeatures und deren Einsatz: Ist da überhaupt ein Buch aktuell empfehlenswert? Finden sich da nicht online genug Dinge, die man lesen kann um sich den Inhalt zu erarbeiten? (Zumal ja auch c++2a/c++20 jetzt langsam kommt wie man ja auf https://en.cppreference.com/w/cpp/compiler_support sieht. Das kann man dann gleich mit erschlagen so man möchte.)


----------



## Xyz1 (1. Aug 2019)

kneitzel hat gesagt.:


> Wobei ich mich frage, wie viele andere Bücher Tobias kennt


Viele gelesene sind Schrott.


----------



## Barista (4. Aug 2019)

Tobias-nrw hat gesagt.:


> Der C++-Programmierer: C++ lernen - professionell anwenden - Lösungen nutzen. Aktuell zu C++17 https://www.amazon.de/dp/3446448845/



Ich fand dieses Buch ein wildes Sammelsurium, kann aber auch an der Sprache liegen.

Prinzipiell sollte man bei Büchern auf ein aktuelles Datum achten.

Die alten Bücher empfehlen new/delete.

Die neuen Bücher lehnen das ab und empfehlen unique_ptr und shared_ptr.

Wenn man von Java zu C/C++ wechselt, merkt man erst mal, dass Java echt Klasse ist.


----------



## M.L. (4. Aug 2019)

> Prinzipiell sollte man bei Büchern auf ein aktuelles Datum achten.


 ...und darauf achten, das die (selbst) verwendeten Werkzeuge ebenso aktuell sind.  


> new/delete.
> (..)
> unique_ptr und shared_ptr.


 Wobei der hier verwendete Compiler von VS 2019 ein Beispiel mit new/delete anstandslos übersetzt und korrekt ausführt: http://www.cplusplus.com/doc/tutorial/dynamic/


> Wenn man von Java zu C/C++ wechselt, merkt man erst mal, dass Java echt Klasse ist.


 C++ erlaubt mehr Manipulationen am Speicher (und damit mehr Verantwortung für den Programmierer für sein Tun am selbigen)


----------



## mihe7 (5. Aug 2019)

Barista hat gesagt.:


> Die alten Bücher empfehlen new/delete.
> 
> Die neuen Bücher lehnen das ab und empfehlen unique_ptr und shared_ptr.


Meine C++-Kenntnisse sind schon sehr alt (noch vor der Standardisierung...) Wenn ich es richtig sehe, dann sind unique_ptr/shared_ptr keine Sprachfeatures sondern einfach Wrapper, die dafür sorgen, dass der Speicherplatz wieder freigegeben wird, wobei shared_ptr einen Referenzzähler enthält?


----------



## M.L. (5. Aug 2019)

> Wrapper, die dafür sorgen, dass der Speicherplatz wieder freigegeben wird, wobei shared_ptr einen Referenzzähler enthält?


Das könnte sogar passen. Zitat aus dem Buch "C++" desselben Autors: "(...)*8.3.4 shared_ptr *
Die Möglichkeit, Kopien zu erstellen, die alle Zugriff auf dasselbe referenzierte Objekt haben, unterscheidet shared _ ptr vom unique _ ptr . Dabei kann es beliebig viele Kopien geben. Die Klasse zählt intern mit, wie viele shared _ ptr auf dasselbe Objekt zeigen. Der Destruktor setzt dabei den internen Zähler um eins herunter. Nur der Destruktor des letzten verbliebenen shared _ ptr-Objekts löscht das referenzierte Objekt mit delete.(...)"


----------



## Barista (15. Sep 2019)

Ich habe mir dieses gekauft, fand ich gut:

            Peter Gottschling         

*            Forschung mit modernem C++        *

*C++17-Intensivkurs für Wissenschaftler, Ingenieure und Programmierer* 














						Forschung mit modernem C++| Hanser Fachbuch
					

Forschung mit modernem C++ von Peter Gottschling ✔ C++17-Intensivkurs für Wissenschaftler, Ingenieure und Programmierer ▶ Jetzt online bestellen!!!




					www.hanser-fachbuch.de


----------

