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 identisch

    C#:
    - delegates + events
    - generics (ab 2.0)
    - Strukturen (struct) sind Werte (values), Klassen (class) werden mittels Referenzen verwaltet

    Auß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.


Anmelden zum Antworten