Umstieg von C# auf C++
-
Hallo
Ich lerne grade C#. Da ich später einmal in die Richtung der Spieleprogrammierung gehen will, und mir der Umstieg auf C++ dadurch nicht erspart bleibt, würde ich gerne wissen ob der Umstieg von C# zu C++ schwer ist oder nicht? Ich habe im Internet gelesen dass sich C# und C++ sehr ähnlich sind. Stimmt das?
-
Von der Syntax sind sich die Sprachen recht ähnlich, jedoch unterscheiden sie sich im Detail:
C++:
- templates (metaprogramming)
- Pointer + Referenzen
- struct und class sind fast identischC#:
- delegates + events
- generics (ab 2.0)
- Strukturen (struct) sind Werte (values), Klassen (class) werden mittels Referenzen verwaltetAußerdem unterscheiden sich die Standard-Bibliotheken sehr stark voneinander
(C++ Standard Library ist template-basiert, C# verwendet das .NET Framework).Du könntest natürlich dann auch C++ mit dem .NET-Framework benutzen ("Managed C++), für die Spieleentwicklung wirst du aber dann wahrscheinlich auf andere Grafik-Bibliotheken (OpenGL, DirectX, ...) umsteigen.
-
IMHO bindest Du Dich mit C# auf das .Net Framework da die sprachintegrationen dem Framework entsprechen. (string System.String etc.)
-
Hallo
Danke erstmal für eure Antworten
Also müsste ich bei C++ wieder mit den Grundlagen anfangen?
-
Thundereye schrieb:
Also müsste ich bei C++ wieder mit den Grundlagen anfangen?
IMHO ja. Die Sprachen bauen einfach auf grundverschiedenen Paradigmen auf. Die oberflächlichen Sprachähnlichkeiten der Syntax helfen da nicht.
-
Ja udn nein. C++ verlangt deutlich mehr Einstiegswissen über die Sprache als C#. Bei C# mußt Du Dich weniger auf die Sprache Konzentrieren und kannst dich statt dessen mehr auf Programmieren lernen selbst konzentrieren.
Dazu kommt das C++ auch C noch als UNtermenge hat. Wenn man weis was man tut ist das ne gute Sache, aber für einen Anfänger kann der Schuß nach hinten losgehen weil man schnell C und C++ vermischen ohne es zu merken. Das Ergbenis kann dann sehr unsauberer Code sein, aber "weil es ja compiliert" merkt man es nicht.
Nach meiner Meinung ist C# die bessere Wahl für einen Anfänger, der Objektorientiertes Programmieren lernen will. Wenn die Grundlagen dazu erstmal sitzen kann man immer noch C++ lernen. Das wird so oder so sehr schwer, wie gesagt, C++ fordert mehr Wissen über die Sprache, über Speicherverwaltung, Zeiger, heap, stack etc. Alles Sachen um die man sich in C# erstmal nicht kümmern muß.
-
skals schrieb:
Nach meiner Meinung ist C# die bessere Wahl für einen Anfänger, der Objektorientiertes Programmieren lernen will. Wenn die Grundlagen dazu erstmal sitzen kann man immer noch C++ lernen. Das wird so oder so sehr schwer, wie gesagt, C++ fordert mehr Wissen über die Sprache, über Speicherverwaltung, Zeiger, heap, stack etc. Alles Sachen um die man sich in C# erstmal nicht kümmern muß.
OOP ist eigentlich nicht das Problem da ich es schon von VB.NET kenne. Also hat man es auch nicht leichter wenn man C# beherrscht wenn ich das richtig verstanden habe?
-
Natuerlich hast du es einfacher.
Alleine dadurch, dass du bereits eine Programmiersprache kannst. Die Strukturen und Sprachen sind kein Problem - wenn du einmal die wichtigsten Dinge verstanden hast ist es einfach neue Sprachen zu lernen.
Man muss in C++ weitaus vorsichtiger sein als in C#, aber ein wenig Gedult und das funktioniert nach kurzer Zeit. Länger wird es dauern bis du wirklich guten C++ Code schreibst -- aber da hilft ja bekanntlich viel Übung.