Hallo!
Ich programmiere schon seit einiger Zeit C# und kenne mich auch wunderbar damit aus, allerdings möchte ich mir nun auch C++ beibringen, denn hin und wieder brauche ich native Anwendungen.
Früher habe ich mit Delphi programmiert und kenne mich auch recht gut mit der Win32 API aus, nur leider weiß ich nicht so genau, wo ich anfangen soll.
Habt ihr für mich Links zu guten Einstiegstutorials oder sonst gute Ratschläge? Ich möchte noch dazu sagen, dass ich auf den Kauf von Büchern gerne verzichten würde. Habe Visual C++ 2008 Express Edition, also macht es auch nichts, wenn sich die Einführungen auf diese IDE beziehen.
mfg oli
also ich möchte jetzt mal behaupten, ohne Bücher wird das nichts - diese Erfahrung habe ich zumindest bisher immer gemacht.
Hallo zusammen,
bevor die Frage kommt 🙂 warum idontwantaname in "Buch_empfehlungen" fragt, wenn er auf Bücher verzichten will: Ich den Thread hier her verschoben, weil es in "Buch_empfehlungen" laut Forenbeschreibung nicht nur um Bücher, sondern um jegliche Informationsquellen, inbesondere auch um Tutorials geht.
herbivore
Hallo,
Den find ich nicht schlecht, müsste als einführung eig. reichen wenn man schon grundkentnisse im programmiern hat 😉
Hallo idontwantaname,
ich programmiere auch so wie du in C# und Delphi und lerne zur Zeit C++. Die Grundlagen, also die OOP, Datentypen, ect. sind in fast jeder Sprache ähnlich nur bis auf die Syntax. Deshalb denke ich nicht, dass man alles von Grund auf C++ lernen muss, denn das meiste ist einen sowieso schon klar. Ich könnte dir hier das Buch empfehlen: http://www.amazon.de/Einstieg-Professioneller-Programmierung-Objektorientierung-Exceptions/dp/383621072X/ . Dort ist auch eine Leseprobe vorhanden, da kannst du mal schauen wie dir das buch gefällt. Ansonten findest du im Internet noch reichlich was zum lesen, wie beispielsweise hier das: http://ladedu.com/cpp/einf .
Möchtest du in C++ oder in Visual C++ programmieren?
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Das ist eine gute Frage, denn wenn du mehr in die performance-lastigeren Gebiete eintauchen willst, wirst du dich sehr ausführlich mit Pointer-Arithmetik, Speichermanagementstrategien und nach den ersten Basics die STL wäre auch nicht schlecht.
Unter MS gibts anstatt der STL, soweit ich weiß, die ATL die im Grunde das gleiche und ein bisschen mehr bietet.
Diese Themen solltest du dir jedenfalls auch zu Gemüte ziehen wenn du C++ wirklich lernen willst und nicht nur ein bischen Code runterklopfen möchtest.
As a man thinketh in his heart, so he is.
Hi!
Danke schon mal für die Links! Werde sie mir mal ansehen 🙂
@zero_x: Naja, ich hätte geplant, Visual C++ Express zu verwenden 😉
Mfg oli
Hallo
Möchtest du in C++ oder in Visual C++ programmieren?
Es gibt keine Sprache namens Visual C++! So nennt sich die IDE. Programmieren tut man dann mit der Sprache C++. Vielleicht nichts für den absoluten Einstieg, aber den brauchst du eh nicht, wenn du bereist C# kannst: "Scott Meyers Effektiv C++ Programmieren". Das Wichtigste: Verwende viel weniger new als bei c#.
chrische
Hallo chrische5,
ich meinte damit C++/CLI.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Hallo chrische5
Das Wichtigste: Verwende viel weniger new als bei c#.
Wieso?
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Hallo Peter Bucher,
so direkt kann man das nicht sagen, ob man in C# mehr new
als in C++ verwendet.
zero_x
P.S.: http://de.wikibooks.org/wiki/C%2B%2B-Programmierung:_Speicherverwaltung
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Hallo Peter Bucher,
vermutlich, weil in C++ die Variablen direkt die Objektdaten enthalten und keine Referenzen (außer man deklariert eine Variable ausdrücklich als Pointer oder Referenz). Wenn man eine lokale Variable deklariert, hat man also nicht nur eine Variable, sondern schon ein Objekt. Das hat zwar den Vorteil, dass die Lebensdauer des Objekts im vorhinein bekannt ist (es lebt nur solange die Methode noch nicht verlassen ist) und entsprechend beim Verlassen der Methode der Destruktor für das Objekt aufgerufen werden kann. Man kann damit so lustige Sachen machen wie "Resource Acquisition Is Initialization", aber an sich ist der Ansatz von C#, das Variablen immer Referenzen sind (außer bei Werttypen), viel besser und sauberer. Ich würde daher auch in C++ empfehlen, alle (Objekt-)Variablen als Referenz (oder Pointer) zu deklarieren und entsprechend genauso oft new zu verwenden wie in C#. Leider muss man sich in C++ dann selber um die Speicherverwaltung kümmern.
herbivore
Hallo
@zero_x: Dann verwende doch den Namen, den du meinst und nicht den einer IDE. Das wird sehr häufig verwechselt udn deshalb sollte man da sehr genau sein.
@all: Mein Satz war etwas zugespitzt formuliert. In C++ ist es einfach unüblich alle Variablen mittels new im Heap zu haben, sondern man speichert lokale Variablen besser im stack damit der C'tor automatisch aufgerufen werden kann und keine Speicherlöcher entstehen.
chrische
Hallo Peter Bucher,
vermutlich, weil in C++ die Variablen direkt die Objektdaten enthalten und keine Referenzen (außer man deklariert eine Variable ausdrücklich als Pointer oder Referenz). Wenn man eine lokale Variable deklariert, hat man also nicht nur eine Variable, sondern schon ein Objekt. Das hat zwar den Vorteil, dass die Lebensdauer des Objekts im vorhinein bekannt ist (es lebt nur solange die Methode noch nicht verlassen ist) und entsprechend beim Verlassen der Methode der Destruktor für das Objekt aufgerufen werden kann. Man kann damit so lustige Sachen machen wie "Resource Acquisition Is Initialization", aber an sich ist der Ansatz von C#, das Variablen immer Referenzen sind (außer bei Werttypen), viel besser und sauberer. Ich würde daher auch in C++ empfehlen, alle (Objekt-)Variablen als Referenz (oder Pointer) zu deklarieren und entsprechend genauso oft new zu verwenden wie in C#. Leider muss man sich in C++ dann selber um die Speicherverwaltung kümmern.
herbivore
Da kann ich herbivore nur zustimmen.
Es gibt inzwischen aber auch gute Frameworks, die sich um die Speicherverwaltung (wenn auch nur teilweise) kümmern. Qt ist ein gutes Beispiel. Aber natürlich sollte man dafür erstmal C++ lernen.