this->



  • hallo,

    ich habe mir mal viele fertige engines (ogre, nebule, irrlicht) durchgesehen und auf das hier gestossen:

    manche verwenden this (in untenstehendem zusammenhang), manche nicht....

    CClass
    {
       int m_Var;
    
       public:
    
       Test(int Var);
    };
    
    CClass::Test(int Var)
    {
      m_Test = Var;
    }
    

    oder

    CClass::Test(int Var)
    {
      this->m_Test = Var;
    }
    

    wieso manche dieses this in diesem zusammenhang benutzen, manche nicht ?
    gibts irgendwie auch standard ?



  • mach doch bitte kein Leerzeichen vor Satzzeichen!

    wieso manche dieses this in diesem zusammenhang benutzen, manche nicht ?

    wahrscheinlich glauben einige Programmierer, dass das m_ nicht schon deutlich genug kennzeichnet, dass es sich um ein Member handelt. Ansonsten kompilieren einige Compiler schneller, wenn man this-> vor Member schreibt (zumindest die GCC). Trotzdem halte ich das für hässlich

    gibts irgendwie auch standard ?

    😕

    was meinst du?



  • gute programmierer verzichten auf this->



  • keinen Standard, aber eine interessante Diskussion dazu:

    ➡ http://www.c-plusplus.net/forum/viewtopic.php?t=48095&highlight=its



  • wahrscheinlich glauben einige Programmierer, dass das m_ nicht schon deutlich genug kennzeichnet, dass es sich um ein Member handelt.

    Ich denk das liegt eher an sachen wie IntelliSense.

    Wie hies die Variable noch mal ? Hmmm....

    this->*wart* Ahh ja, so hies die.

    Und dann wird this nich mehr weggelöscht ;o)



  • was haltet ihr denn davon ?

    das die compilierzeit mit dem "this->" gesenkt wird ?
    http://www.c-plusplus.net/forum/viewtopic.php?t=48095&postdays=0&postorder=asc&highlight=its&start=30

    FranzosenJonny schrieb:

    OHNE THIS
    $ time g++ test.cpp

    real 0m6.689s
    user 0m0.730s
    sys 0m0.050s

    MIT THIS
    $ time g++ test2.cpp

    real 0m2.736s
    user 0m0.520s
    sys 0m0.032s

    daraus folgt:
    this bringt ein performance anstieg von 40%😮⚠

    kingruedi schrieb:

    FranzosenJonny schrieb:

    daraus folgt:
    this bringt ein performance anstieg von 40%😮⚠

    bitte nur betonen, dass man beim kompilieren die Performance steigert 🙂

    stimmt das ?

    und wenn ja, wird da compilierzeit gesenkt oder auch ausführzeit von den programmen dann ?



  • compilierzeit



  • Sergius schrieb:

    this bringt ein performance anstieg von 40%😮⚠

    😮
    Sag noch einer mal was gegen die Compile-Zeiten von meinem VC++...



  • Ich würde nicht mein Programm hässlich machen, nur damit es schneller compiliert wird.
    Außerdem sieht das bei anderen Compilern vielleicht schon wieder anders aus.



  • was ist an this hässlich??!?!?! 😕



  • ... nicht hässlich, nur nutzlos überladen und damit vom Wesentlichen ablenkend.



  • Knuddlbaer schrieb:

    Ich denk das liegt eher an sachen wie IntelliSense.

    Also in dem Fall kann ich in meinem VC Strg+Leertaste drücken und hab, was ich will 😉



  • tag schrieb:

    Also in dem Fall kann ich in meinem VC Strg+Leertaste drücken und hab, was ich will 😉

    An dieser Tastenkombination sind schon Generationen von Programmierern gescheitert. Deswegen gibt es this->. 😉



  • FranzosenJonny schrieb:

    this bringt ein performance anstieg von 40%😮⚠

    Wenn ich das Rechnen nicht völlig verlernt habe, sind 6.689 - 2.736 = 3.925 von 6.689 eher so um die 60 Prozent.



  • cd9000 schrieb:

    tag schrieb:

    Also in dem Fall kann ich in meinem VC Strg+Leertaste drücken und hab, was ich will 😉

    An dieser Tastenkombination sind schon Generationen von Programmierern gescheitert. Deswegen gibt es this->. 😉

    *g*
    ...und was ist mit Strg+Alt+T? 😃



  • tag schrieb:

    Knuddlbaer schrieb:

    Ich denk das liegt eher an sachen wie IntelliSense.

    Also in dem Fall kann ich in meinem VC Strg+Leertaste drücken und hab, was ich will 😉

    Na, da haste dann den gesammten Namensraum ?!



  • ich kann ja auch m_ noch selber eingeben, oder je nach dem, wie man seine Variablen nennt... Wenn man darauf auch noch verzichtet, dann kann ich auch nichts mehr dran machen :p 😉


Log in to reply