C++, lohnt es sich



  • Wo siehst du hier globale Variablen?



  • void set(myStruct *param, int x_, int y_) 
    { 
        x = x_; 
        y = y_; 
    }
    

    Keine globalen Variablen? Dann haben wir hier nen Syntax-Error :p
    Was ich aber nicht so ganz verstehe, welchen Punkt versuchst Du hier zu machen. Was willst Du damit aussagen?



  • Das C++ nicht langsamer ist wie C. Dieses Gerücht hält sich ja hartnäckigst.



  • In diesem Thread ist außer Dir aber keiner drauf angesprungen. Nach meinem Gefühl war es jedem klar.



  • hi,
    also in c könnte ich praktisch einfach schreiben
    int x;
    cin >> x;
    int vla[x];
    oder wie? und was is da der vorteil zu new?

    thx für die erklärung 🙂
    busta



  • oder wie?

    nein, cin etc. ist ja C++ 🙄 *klugscheiss* (btw. size_t nicht int für größen!)

    und was is da der vorteil zu new?

    new arbeitet auf dem FreeStore und die VLAs auf dem Stack. Außerdem verhalten sich VLAs wie Arrays und nicht wie Pointer (ja, da gibt es einen Unterschied)



  • ok, danke 🙂 gibs da performance unterschiede?

    grüsse busta



  • Wo ihr gerade cin und cout erwähnt, diese Zweckentfremden doch den links- und rechts Shift-Operator für die Ein- und Ausgabe, oder?



  • Das heisst 'überladen' und nicht 'zweckentfremden'. 😉



  • new arbeitet auf dem FreeStore und die VLAs auf dem Stack.

    Meines Wissens nach fordert der Standard nicht, dass VLAs auf dem Stack liegen. Es gibt zumindest mindestens eine Implementation die für VLAs keinen Stackspeicher verwendet.



  • new arbeitet auf dem FreeStore und die VLAs auf dem Stack. Außerdem verhalten sich VLAs wie Arrays und nicht wie Pointer (ja, da gibt es einen Unterschied)

    int a[10];
    int *b = malloc(sizeof(int) * 10);

    Der einzige Unterschied, den ich kenne (in C), ist folgender:

    a ist ein Konstanter Pointer -> a++, a = ... somit nicht erlaubt!
    b ist ein variabler Pointer -> b++, b =... somit erlaubt!

    d.h. int a[10] ist gleichwertig mit *int const b

    Kennst du da etwa noch einen Unterschied?

    //--------------------------------------------------
    @ Shade Of Mine

    Hätte nicht gedacht, dass bei C++ die Sprache C als Ballast angesehen wird.

    Vielleicht deshalb, weil einige Sachen anders funktionieren (wie z.B. structs)?
    Hast du einige Links zum Thema oder ist das deine persönliche Meinung? 😕



  • Es ist deshalb Ballast, weil die erzwungene Kompatibilität zu C die Weiterentwicklung von C++ (bisher) behindert.
    Aber wie es aussieht, gehen die beiden Sprachen künftig getrennte Wege.



  • gh0st124 schrieb:

    Hätte nicht gedacht, dass bei C++ die Sprache C als Ballast angesehen wird.

    Will hier irgendjemand ernsthaft Cs intuitive Deklarationssyntax verteidigen? Über das Übersetzungsmodell und den Zeiger-Array-Mischmasch kann man sich sicher auch streiten. Fast alles, was mich an C++ stört, kommt von C... 🙄
    Und C99s complex-Datentypen z.B. passen noch weniger in die C++-Welt als VLAs.


Anmelden zum Antworten