Unterschiede C++ und Java.



  • Hab mal so ne Frage.

    Was sind die Hauptunterschiede zwischen C++ und Java? Hab gehört, dass man irgendwie ca. 90% der einen Sprache schon mitabdeckt wenn man die andere kann.



  • Hallo.
    Das hat Jesse Liberty geschrieben! Lies sein Buch weiter (ich nehme mal an, "C++ in 21 Tagen") und er wird von selber weiter darauf eingehen.

    cu,
    BodPa


  • Mod

    Original erstellt von KravenZ:
    Hab gehört, dass man irgendwie ca. 90% der einen Sprache schon mitabdeckt wenn man die andere kann.

    Das ist falsch! ...egal, wer das geschrieben hat! Höchstens auf die Syntax bezogen könnte das teilweise hinkommen.



  • hihi, jetz gibts gleich wieder n flamewar 😃

    c++ hat fast alle Sprachelemente von Java und einige mehr. Java beschränkt sich auf (fast) alles was man für gute OO-Programmierung braucht. Mehr Spaß macht meiner Meinung nach Java, grad weil es sich aufs Wesentliche beschränkt und einige Sachen automatisch drin hat, wie etwas dynamisches Binden von Methoden bei vererbten Klassen. Aus irgendnem Grund fand ich OO-Coden bei C++ immer anstrengend , vielleicht lags auch nur daran, daß man dauernd zwischen cpp und Header-Datei hin und herspringen und alle Methoden-Köpfe in beide Dateien reinpacken muß (anstatt wie bei Java jede Klasse in eine Datei zu tun)



  • @ crass
    Die Aufteilung ind Header und cpp ist nicht unbedingt notwendig, ist aber meiner Meinung nach übersichtlicher.

    @BodPa
    Es war wirklich Jesse Liberty. 🙂

    [ Dieser Beitrag wurde am 01.06.2003 um 12:06 Uhr von KravenZ editiert. ]





  • guter Beitrag, der auch die Vorteile von Java recht gut rausstellt

    wegen der Aufspaltungs-Geschichte noch: wieso soll das übersichtlicher sein? Das man nicht unbedingt aufspalten muß, wußt ich zwar auch, aber wenn man alles in die cpp packt, hat man keinen Zugriff auf die Klasse mehr in anderen Dateien (schlagt mich wenns doch irgendwie geht, ich wüßt net wie), wenn man alles in die Header-Datei packt, dann sagt man damit erstens das alle Methoden inline sein sollen, was sicher nicht beabsichtigt ist, obwohl es vom Compiler dann wohl auch ignoriert wird und 2. sind Header-Dateien einfach nicht für Methoden-Definitionen vorgesehen, außer vielleicht bei inline - Methoden.

    [ Dieser Beitrag wurde am 02.06.2003 um 12:47 Uhr von crass editiert. ]



  • Original erstellt von KravenZ:
    **@ crass
    Die Aufteilung ind Header und cpp ist nicht unbedingt notwendig, ist aber meiner Meinung nach übersichtlicher.
    **

    Wenn man ordentlich programmiert, ggibts dafür ja die Javadoc 🙂 Selbst ohne selbstgeschriebene Doku kommt da zumindest am Ende was raus, was von Benutzersicht (also ein Programmierer ders benutzt) einer Headerdatei doch stark ähnelt.



  • Für mich besteht ein fundamentaler Unterschied zwischen Java und C++ darin, dass Java genau *ein* Paradigma propagiert (nämlich objekt-orientierte Programmierung) wohingegen C++ absichtlich in Richtung Multi-paradigm-Sprache ausgelegt ist. C++ unterstützt zwar die OOP, erzwingt sie aber nicht.

    Auf der anderen Seite bin ich der Meinung, dass es deutlich einfacher wäre die Gemeinsamkeiten der beiden Sprachen aufzuzählen als deren Unterschiede, da letztere in der Mehrzahl sind. Selbst Sachen die beide Sprachen auf den ersten Blick gemeinsam haben unterscheiden sich schließlich häufig in fundamentaler Art und Weise (z.B. Exceptions und deren Handhabung).

    [ Dieser Beitrag wurde am 02.06.2003 um 13:22 Uhr von HumeSikkins editiert. ]



  • Original erstellt von crass:
    wenn man alles in die Header-Datei packt, dann sagt man damit erstens das alle Methoden inline sein sollen, was sicher nicht beabsichtigt ist, obwohl es vom Compiler dann wohl auch ignoriert wird und 2. sind Header-Dateien einfach nicht für Methoden-Definitionen vorgesehen, außer vielleicht bei inline - Methoden.

    man kann sehr wohl die methoden nicht inline in der header datei definieren.

    die Idee hinter dem h-cpp Konzept ist ja der: Schnittstelle von Implementation zu trennen.

    wenn sich die implementation ändert dann wird nur die implementation neu kompiliert und der rest des programmes bleibt gleich.

    C++ lässt einem die Freiheit was man will: man kann auch wie in Java jede methode direkt in der klassendeklaration definieren.



  • Original erstellt von Shade Of Mine:
    **man kann sehr wohl die methoden nicht inline in der header datei definieren.
    **

    dann hagelts aber doppelte Definitionen ...



  • was ich sehr gut an java find (besser als an C++):

    - es bringt seine eigenen grafikroutinen mit
    -> man muss sich nicht mit der Win API rumplagen
    - man verzeigert sich net und muss dann ach nicht neustarten 😉 (könnt aber auch an mir liegen 😃 )


Anmelden zum Antworten