Suche Buchempfehlung für C++

JCODA

Top Contributor
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
 

temi

Top Contributor
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.

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

Sorry, ich kann dir nicht folgen.
 
K

kneitzel

Gast
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.)
 

Barista

Top Contributor
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.

Top Contributor
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

Top Contributor
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.

Top Contributor
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

Top Contributor
Ich habe mir dieses gekauft, fand ich gut:

Peter Gottschling

Forschung mit modernem C++

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






 

Ähnliche Java Themen

Neue Themen


Oben