Hi Leute,
ich habe eine Frage, nunzwar wurde mir dieses Buch geschenkt :
"C++ Objektoerientiertes Programmieren für Windows" (Helmut Erlenkötter)
Es ist jedoch 2001 erschienen, wäre es also noch brauchbar oder ist es
längst veraltet?
Besten Dank & Viele Grüße
Die Erlenkoetter-Bücher sind OK. Das, was er über die Installation von
Visual Studio 2000 schreibt, kannst Du heute getrost vergessen, das, was
er über das Programmieren an sich schreibt, gilt immer noch.
Bis Du vom "Hallo Welt" an dem Punkt angekommen bist, an dem sich das
Programmieren seit 2001 weiterentwickelt hast, vergeht mehr als ein
Buch.
Das kostenlose Visual Studio enthält immer noch die MFC. Die Nachfolger
haben sich nicht so wirklich durchgesetzt.
Am besten du machst Installation und "Erste Schritte" nach der
Anleitung, die Microsoft auf ihre Download-Seite gestellt hat. Dann
fängst du mit dem Buch an, schaust einfach mal, ob dir der Stiel des
Buches liegt.
In den neueren C++ Standards sind zwar tolle Features dazugekommen. Aber
die alten sind dadurch nicht obsolet geworden. Und man braucht sowieso
ein Jahr, bis man alle alten Features beherrscht.
Noch einer schrieb:> Das kostenlose Visual Studio enthält immer noch die MFC. Die Nachfolger> haben sich nicht so wirklich durchgesetzt.
Hmm? Da MS irgendwann auch mal auf die Idee kam im Sinne von Eat your
own dog food zu handeln, ist bspw. seit längerem auch die gesamte
Oberfläche von Visual Studio WPF (ab VS2010). Blend ist ebenso WPF.
Line-Of-Business-Anwendungen, die nicht im Laden um die Ecke stehen:
sehr viel WPF und WinForms. Irgendwo gab's früher auch mal div. Listen
mit bekannten Anwendungen die WPF nutzen.
Die MFC gibt's noch, ja. Sollte man die nutzen? Ich würde es nicht,
zumindest nicht für neue Projekte. Entweder direkt zu Qt oder wenn's
Windows-only ist UWP nutzen, wenn C++ die Sprache der Wahl sein soll.
> Am besten du machst Installation und "Erste Schritte" nach der> Anleitung, die Microsoft auf ihre Download-Seite gestellt hat. Dann> fängst du mit dem Buch an, schaust einfach mal, ob dir der Stiel des> Buches liegt.>> In den neueren C++ Standards sind zwar tolle Features dazugekommen. Aber> die alten sind dadurch nicht obsolet geworden.
Man sollte sich die alten "Features" allerdings direkt wieder
abgewöhnen...
Wenn das Buch von 2001 ist, dann ist das C++98 oder die Bugfix-Version
davon C++03. Dagegen sind C++11 und die folgenden Standards eigentlich
eine neue Sprache, die notgedrungen noch rückwärtskompatibel ist.
Die alten Features wieder abgewöhnen? Würde ich ja gerne, das geht aber
nicht.
Die meisten Leute finden C++ unnötig komplex, nehmen aber trotzdem weil
es für alles passende Libraries gibt. Nur leider ergibt es ein
Sammelsurium aus allen Generationen. Alte C-Arrays, die Qt
Containerklassen, diverse Generationen der STL, und noch ein paar Boost
Features, die es inzwischen auch unter std:: gibt.
Das lässt sich nie wieder aufräumen. Die Qt lässt sich nicht mehr auf
std::shared_ptr und std::container umstellen. Wir müssen alle Konzepte
aus allen Generationen beherrschen und tonnenweise Wrapperklassen bauen.
Und wenn ich die alten Libraries nicht mehr benutze - warum sollte ich
dann C++ lernen?
Walter T. schrieb:> Bis Du vom "Hallo Welt" an dem Punkt angekommen bist, an dem sich das> Programmieren seit 2001 weiterentwickelt hast, vergeht mehr als ein> Buch.
Jain, es hat schon einiges, das man sich nicht neu angewöhnen müsste
bzw. gleich richtig lernen kann.
Range-based loops, uniform initialization, enum class, default/delete
functions, sind nur einige, die man am besten gleich von Anfang an
durchs Projekt ziehen möchte.
C++ kann man heute bedeutend leserlicher und sicherer Schreiben als mit
C++98, warum also den alten Kram lernen?
Noch einer schrieb:> Die Qt lässt sich nicht mehr auf> std::shared_ptr und std::container umstellen.
Das kannst du Qt aber kaum vorhalten.
Qt hatte implizites Sharing gefühlte zehn Jahre, bevor es brauchbare
C++-Compiler gab :-)
Ich mein, selbst in C++ kam ja irgendwie erst in den letzten sechs
Jahren oder so nochmal richtig Fahrt rein. Vielleicht auch, weil die
Leute erkennen, dass ein Haufen Java und Skript doch nicht der Weisheit
letzter Sch(l)uss waren...
Albert schrieb:> ich habe eine Frage, nunzwar wurde mir dieses Buch geschenkt :> "C++ Objektoerientiertes Programmieren für Windows" (Helmut Erlenkötter)
Schaden kann es nicht, kriegste aber auch für 2,50Eur auf Amazon.
Hältste dich dran, gewöhnste Dir aber vermutlich etliche MFC-Sauereien
an (z.B. Klassennamen mit 'C' beginnend, etwa CFileReader).
Persönlich würde ich dir lieber zu irgendwas mit Qt5 raten. Ist zwar
durch den Metacompiler auch nicht reines C++, aber druff gesch*ssen, man
kommt seehr schnell zu einer brauchbaren Anwendung mit'm QtCreator. Gilt
aber ebenso für Microsofts IDL bzw. Resourcencompiler.
Wenn du nicht wirklich den alten C++-Standard oder auf MFC angewiesen
bist, tät ich's lassen und mit Qt anfang. Sollten wirklich mal
plattformabhängige WinAPI-Calls für 'ne Backend-Komponente nötig sein,
gammeln in der MSDN genügend kostenlose Codebeispiele rum.
>Das kannst du Qt aber kaum vorhalten.
Das mache ich auch nicht. War nur eine Anmerkung - man muss sowieso die
ganzen obsoleten C++ Features lernen. Will man nur die neuen lernen,
kann man die alten Libraries nicht benutzen.
Dann doch lieber Rust oder Swift lernen. Auch wenn Java und Python nicht
der Weisheit letzter Sch(l)uss waren -- Gibt inzwischen Sprachen, die
aus Java und aus C++ gelernt haben.
>Persönlich würde ich dir lieber zu irgendwas mit Qt5 raten.
Ich auch :-) Mag Microsoft nicht und finde es Klasse, wenn jemand
Programme schreibt, die auch auf Linux laufen.
Ich habe noch einmal einen Blick ins Erlenkötter-Buch geworfen (und
dabei eine längst vergessene Grußkarte als Lesezeichen wiederentdeckt).
Ich habe die 10. Auflage von 2007.
Grafische Benutzer-Schnittstellen (GraBSch) kommen gar nicht vor. Es
geht rein um die Sprache. Auf Anhieb entdecke ich auch keine Konstrukte
zum gleich-wieder-abgewöhnen.
Sprich: Es spricht nichts dagegen, damit anzufangen. Ist man sowieso
schnell durch.