welche vorteile bietet c++ gegenüber c



  • Hab ja alles mögliche versucht, OGRE, Irrlicht usw. und bin dann letzten
    Endes bei der C-API SDL gelandet

    Versteh ich das richtig, dass du bei deinen Versuchen mit 3D-Engines schlussendlich auf eine 2D-Engine umgestiegenbist? 🤡



  • Willst du ein Framework schreiben welches sich gut in andere Sprachen integrieren lässt fällt C++ schon mal unterm Tisch, da ist C immer noch die beste Wahl weil C-Schnittstellen einfach viel mehr unterstützt werden.

    OOP wird schon sehr stark überbewertet ist ähnlich wie die berühmte Cloud.



  • cinterface schrieb:

    Willst du ein Framework schreiben welches sich gut in andere Sprachen integrieren lässt fällt C++ schon mal unterm Tisch, da ist C immer noch die beste Wahl weil C-Schnittstellen einfach viel mehr unterstützt werden.

    Naja, die Schnittstelle ist das eine, die Implementierung das andere. Habe auch mal ein LADSPA-Plugin in C++ geschrieben, obwohl LADSPA eine C-Schnittstelle definiert. Das geht genauso wie man um C-Bibliotheken einen C++ Wrapper bauen kann, damit sie unter C++ noch leichter benutzbar wird (siehe gmpxx.h für GMP).

    Aber ja, eine C-Schnittstelle ist -- zumindest, wenn es um vorkompilierte Bibliotheken geht -- um einiges stabiler und interoperabler; denn die C-ABI ist eher standardisiert als die C++-ABI auf einer Plattform. Die Standardbibliothek ist möglicherweise auch nicht binär-kompatible zwischen verschiedenen Compiler-Versionen.



  • MMOHansi schrieb:

    Als Verwender sowohl von C++ sowie C - APIs ist mir schon immer aufgefallen,
    dass so eine C-Bibliothek viel unkomplizierter verwendet werden kann.
    Oft sucht man ja nur die eine oder andere Funktion, die möglichst unabhängig
    von irgend einem Kontext ein paar Parameter nehmen und irgend ein Resultat
    zurückgeben soll. Sozusagen ein kontextunabhängiges Modul.
    C-APIs bieten oft solche Funktionen an, aber bei C++ APIs
    muss man meistens zuerst alle möglichen anderen Klassen und Kontexte
    instanzieren oder gar selber ableiten, damit die Schnittstellen überhaupt
    erst nutzbar sind, d.h. man bekommt irgendeine zusätzliche Logik aufgezwungen,
    die den Entwicklern der C++ API vielleicht vorgeschwebt haben mag,
    die man für's momentane Projekt aber eigentlich gar nicht benötigt.

    Habe ich anders beobachtet. Siehe zB. ffmpeg.


  • Administrator

    cinterface schrieb:

    Willst du ein Framework schreiben welches sich gut in andere Sprachen integrieren lässt fällt C++ schon mal unterm Tisch, da ist C immer noch die beste Wahl weil C-Schnittstellen einfach viel mehr unterstützt werden.

    Schon mal was von extern "C" gehört?
    Man kann ohne Probleme in C++ entwickeln und eine C Schnittstelle für andere Sprachen anbieten.

    @MMOHansi,
    Kann ich so nicht bestätigen. Meistens hängt dies in erster Linie von der Dokumentation ab. Da können auch C Bibliotheken wahnsinnig kompliziert werden, wenn man nicht weiss, wie man die Funktion aufrufen soll, weil man nirgends Dokumentationen dazu findet (z.B. OpenCV, hässlich). Auf der anderen Seite gibt es C++ Bibliotheken, welche man sehr schnell versteht und anwenden kann, weil sie gut dokumentiert sind (z.B. SFML, simpel). Alles nur eine Frage der Dokumentation.
    Und dann ist natürlich auch noch immer die Frage da, wie die Schnittstelle entworfen wurde: Mehr Richtung KISS oder nach Super-Power-Schnittstellen-Helden-Design?

    Grüssli



  • cinterface schrieb:

    OOP wird schon sehr stark überbewertet ist ähnlich wie die berühmte Cloud.

    welche OOP - a) namespace-OOP oder b) "echte" OOP in einer live-Objektwelt?

    im Falle a) stimme ich zu.



  • !rr!rr_. schrieb:

    cinterface schrieb:

    OOP wird schon sehr stark überbewertet ist ähnlich wie die berühmte Cloud.

    welche OOP - a) namespace-OOP oder b) "echte" OOP in einer live-Objektwelt?
    im Falle a) stimme ich zu.

    Und ich dachte immer, Java hätte die "echte" OOP gepachtet. Wie man sich doch irren kann, wenn man mit C++-Bashern redet.



  • volkard schrieb:

    !rr!rr_. schrieb:

    cinterface schrieb:

    OOP wird schon sehr stark überbewertet ist ähnlich wie die berühmte Cloud.

    welche OOP - a) namespace-OOP oder b) "echte" OOP in einer live-Objektwelt?
    im Falle a) stimme ich zu.

    Und ich dachte immer, Java hätte die "echte" OOP gepachtet. Wie man sich doch irren kann, wenn man mit C++-Bashern redet.

    Naja, live realtime oop in der cloud as a service ist der aktuell beste Ansatz. Da kann C++ halt einpacken.



  • Shade Of Mine schrieb:

    volkard schrieb:

    !rr!rr_. schrieb:

    cinterface schrieb:

    OOP wird schon sehr stark überbewertet ist ähnlich wie die berühmte Cloud.

    welche OOP - a) namespace-OOP oder b) "echte" OOP in einer live-Objektwelt?
    im Falle a) stimme ich zu.

    Und ich dachte immer, Java hätte die "echte" OOP gepachtet. Wie man sich doch irren kann, wenn man mit C++-Bashern redet.

    Naja, live realtime oop in der cloud as a service ist der aktuell beste Ansatz. Da kann C++ halt einpacken.

    Willst du Buzzword-Bingo gewinnen? ... Jetzt man ehrlich gib mal ein Beispiel welche Technologie du meinst, damit ich es mir mal anschauen kann 🙂



  • Zeus schrieb:

    Shade Of Mine schrieb:

    Naja, live realtime oop in der cloud as a service ist der aktuell beste Ansatz. Da kann C++ halt einpacken.

    Willst du Buzzword-Bingo gewinnen? ... Jetzt man ehrlich gib mal ein Beispiel welche Technologie du meinst, damit ich es mir mal anschauen kann 🙂

    Er hat halt mal nicht technisch geantwortet, sondern über den Tellerand geschaut, und da schneidet C++ wirklich nicht so gut ab.



  • volkard schrieb:

    ....Er hat halt mal nicht technisch geantwortet, sondern über den Tellerand geschaut, und da schneidet C++ wirklich nicht so gut ab.

    Das ist mir klar, mit soviel fantastische Attribute live und realtime - würde ich sorgar die mir bekannten Cloud-Techniken wie App Engine oder Azure ausschließen *gg* ... deswegen will ich wissen, welche Technologie er mit diesen Begriffen assoziiert.


Anmelden zum Antworten