C++ und wikipedia



  • hallo,
    bin gerade über den wikipedia beitrag zu c++ gestolpert.
    http://de.wikipedia.org/wiki/C-Plusplus

    vielleicht findet ihr ja noch was zu verbessern wäre.
    Was haltet ihr von dem beitrag?

    ( link auf www.c-plusplus.net fehlt 😉 )



  • Schwächen:

    Kompatibilität mit C - Nachteil: historischer Ballast muss mitgeschleppt werden, zum Beispiel der von C übernommene Präprozessor

    also den präprozessor vermisse ich bei java! :p



  • Ich nicht.

    Sehr hohe Ausdrucksstärke und Flexibilität - Beispiel: die anpassbare Freispeicherverwaltung, in die sich zum Beispiel nahtlos eine Garbage-Collection integrieren lässt.

    *loooooooooooooooooooooooooooooool*



  • DasPinscht schrieb:

    also den präprozessor vermisse ich bei java! :p

    Dann besorg dir doch einfach einen. Es ist ja nicht so, dass es soetwas für Java nicht geben würde.



  • [...]ist diese Art der Programmierung [objektorientierte Programmierung] in C++ rückläufig. So werden tiefe Klassenhierarchieen vermieden, und zu Gunsten der Effizienz und der Minimierung des Ressourcenverbrauchs verzichtet man in vielen Fällen auf Polymorphie, dem Kernmechanismus der objektorientierten Programmierung.

    Mich würde echt mal interessieren, ob ihr das genauso seht wie derjenige, der diesen Artikel geschrieben hat. 🙂



  • Gregor schrieb:

    DasPinscht schrieb:

    also den präprozessor vermisse ich bei java! :p

    Dann besorg dir doch einfach einen. Es ist ja nicht so, dass es soetwas für Java nicht geben würde.

    Man kann jederzeit externe Tools wie m4 benutzen (mal abgesehen davon, dass man in Java wirklich keinen Präprozessor braucht)



  • [quote="interpreter"](mal abgesehen davon, dass man in Java wirklich keinen Präprozessor braucht)[/quote]
    wie funtioniert assert() in jave? oder gibt es einen ersatz?
    [code]System.Tools.Debug.Assert.assert(i>=0 && i<max && i%2==0,"i>=0 && i<max && i%2==0","tst.java",341);
    

    oder ein anderer fall, wo man in c++ den präro benutzt:

    #define LOG(x) ofstream("log.txt",ios::app)<<__FUNCTION__<<' '<<#x<<": "<<x<<'\n';
    ...
    LOG(m_size);
    LOG(m_data);
    LOG(theOther.m_size);
    LOG(theOther.m_size);
    

    wie macht man das ohne präpro in java?[/code]



  • beitrag zum zweitenaml weg. kurzfassung:

    wikis sind falsch. beispiel http://de.wikipedia.org/wiki/Nimm-Spiel

    man kann schlicht über wissen per wiki abstimmen. natürlich kommt da nur schrott raus.

    So werden tiefe Klassenhierarchieen vermieden, und zu Gunsten der Effizienz und der Minimierung des Ressourcenverbrauchs verzichtet man in vielen Fällen auf Polymorphie, dem Kernmechanismus der objektorientierten Programmierung.

    was ein depp. polymorphie ist aber hallo! auf dem vormarsch. es ist nur so, daß man nicht mehr allein die laufzeitpolymorphie mit virtual (und scheiß-laufzeitfehlern!) benutzt, sondern noch mehr arten kennt.
    er meint, es gäme nur eine art der polymorphie und ist damit schwer auf dem holzweg.
    er meint, diese sei sogar kernmechanismus der oop und ist damit ebenso auf dem holzweg.
    er meint, man würde templates nur für die effizenz benutzen und hat nicht gerallt, daß sie fehlersicherheit bringen.



  • volkard schrieb:

    [quote="interpreter"](mal abgesehen davon, dass man in Java wirklich keinen Präprozessor braucht)[/quote]
    wie funtioniert assert() in jave? oder gibt es einen ersatz?
    [code]System.Tools.Debug.Assert.assert(i>=0 && i<max && i%2==0,"i>=0 && i<max && i%2==0","tst.java",341);
    

    oder ein anderer fall, wo man in c++ den präro benutzt:

    #define LOG(x) ofstream("log.txt",ios::app)<<__FUNCTION__<<' '<<#x<<": "<<x<<'\n';
    ...
    LOG(m_size);
    LOG(m_data);
    LOG(theOther.m_size);
    LOG(theOther.m_size);
    

    wie macht man das ohne präpro in java?[/code]

    assert ist in Java ein Keyword und damit direkt in die Sprache integriert und nicht wie bei meinem VC++ zunächst ein Makro auf _ASSERT() auf __ASSERTE() auf sonstirgendwas. 🙂

    assert keywordTest;
    

    Asserts lassen sich auch beliebig ein- und ausschalten. Ich kann beim Ausführen durch die VM angeben, für welche Klassen ich die asserts angeschaltet haben will. Der JIT-Compiler übersetzt das entsprechend, in den .class files stehen die assert-Aufrufe drin.

    Was macht __FUNCTION__ in deinem zweiten Code?



  • Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler
    korrigiert? Die Moeglichkeit ist gegeben.

    Was macht __FUNCTION__ in deinem zweiten Code?

    Das wird ersetzt mit dem Funktionsnamen, in welchem sich der Aufruf des Makros
    befindet.

    mfg
    v R



  • Gut, das braucht man in Java definitiv nicht. Da erstell ich mir ein neues Throwable-Objekt und hab den kompletten Stack Trace. Fast noch ein Stück mächtiger als __FUNCTION__. 😉

    Das ist mir jetzt allerdings nur auf schnell eingefallen. Ist zwar schon ziemlich einfach (ein Objekt erzeugen), aber vielleicht muss man das nicht mal so machen, um dem Stack Trace zu bekommen.
    http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    Edit: Link



  • virtuell Realisticer schrieb:

    Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler korrigiert?

    Weil dann der nächste Schlauberger herkommt, und es wieder überarbeitet. Dann muß man die Leute davon überzeugen, daß seine Version richtig ist (Quellen, Textverweise, Aufzeigen, warum die andere Ansicht weit verbreitet, aber trotzdem falsch ist, ...), was mühsam ist. Irgendwann kommt eine Kompromißlösung, man möchte ja, daß alle Ansichten repräsentiert sind: "Der Wasserstrudel in der Badewanne dreht sich auf der Südhalbkugel andersrum. Es gibt allerdings auch die Ansicht, daß dem nicht so sei." Das wäre doch mal was...



  • Daniel E. schrieb:

    virtuell Realisticer schrieb:

    Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler korrigiert?

    Weil dann der nächste Schlauberger herkommt, und es wieder überarbeitet. Dann muß man die Leute davon überzeugen, daß seine Version richtig ist (Quellen, Textverweise, Aufzeigen, warum die andere Ansicht weit verbreitet, aber trotzdem falsch ist, ...), was mühsam ist. Irgendwann kommt eine Kompromißlösung, man möchte ja, daß alle Ansichten repräsentiert sind: "Der Wasserstrudel in der Badewanne dreht sich auf der Südhalbkugel andersrum. Es gibt allerdings auch die Ansicht, daß dem nicht so sei." Das wäre doch mal was...

    Ja, da hast du auch wieder war. Kommt allerdings letztlich auch darauf an, wie
    gut man mit den Leuten reden kann und wie einsichtig sie sind.

    mfg
    v R



  • virtuell Realisticer schrieb:

    Warum geht ihr nicht hin und aendert den Text, indem ihr entsprechende Fehler
    korrigiert? Die Moeglichkeit ist gegeben.

    das glaube ich dir erst, wenn du es schaffst, den namen des spiels vom falschen "Nimm" aufs richtige "Nim" zu ändern.



  • Optimizer schrieb:

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    willst du mich veralbern?



  • Jeder kann Texte ändern und wenn man seine Version sachlich begründen kann, dann spricht doch nichts dagegen 😕

    Hab den Inhalt mal geändert vom Nimm-Spiel, aber den Titel darf man nicht bearbeiten nur den Inhalt.



  • volkard schrieb:

    Optimizer schrieb:

    Also, wofür braucht man einen Präprozessor? Die Frage steht immer noch im Raum. 🙂

    willst du mich veralbern?

    Nein. Ich habe deine Frage, wie man obiges in Java löst, beantwortet. Der Ausgangspunkt war, dass anscheinend jemand in Java einen Präprozessor vermisst. Ich frage mich, wofür?



  • Optimizer schrieb:

    Der Ausgangspunkt war, dass anscheinend jemand in Java einen Präprozessor vermisst. Ich frage mich, wofür?

    ok. für java braucht man keinen.



  • SirLant schrieb:

    Hab den Inhalt mal geändert vom Nimm-Spiel, aber den Titel darf man nicht bearbeiten nur den Inhalt.

    sehe keine änderung. naja, vielleicht kommt das ja noch.



  • @SirLant
    du kannst Artikel aber verschieben (dh. umbennen). Und die Diskussions Seite nicht vergessen, dass hilft sehr, wenn man Leuten zeigen muss, dass man selber recht hat.


Log in to reply