->



  • Das ist ein "this Zeiger"

    In einer Elementfunktion kann man mit dem "this" Zeiger ein Element des Objekts ansprechen...

    this->wert        // Datenelement auf "wert"
    this->funktion()  // Elementfunktion aufrufen
    
    wert = 12; // entsprucht this->wert = 12
    


  • Hi,

    wo in diesem Thread kommt überhaupt this vor, oder überhaupt eine Methode?
    Für den Zeigeroperator gilt einfach: a->b = (*a).b

    ChrisM, der kein C++ in der Schule lernt



  • Serious - Tobi schrieb:

    Das ist ein "this Zeiger"

    Falsch! Ich setz das extra in fett, weil das IMHO ein recht verbreitetes Missverständnis ist, insbesondere bei Leuten, die C++ nicht von den Grundlagen her gelernt haben, sondern irgendwie anders eingestiegen sind (VC++ oder so).

    -> ist der Pfeil-Operator, dessen Bedeutung schon genannt wurde.

    Der this-Zeiger ist der Wert des Ausdrucks this. Wie bei jedem anderen Zeiger, der auf eine Klasse zeigt, kann man auch hier den Pfeiloperator anwenden, um auf Elemente zuzugreifen. Sei es nun pFoo->member oder this->member, völlig egal, mit -> an sich hat das nichts zu tun.



  • Bashar schrieb:

    nicht von den Grundlagen her gelernt haben, sondern irgendwie anders eingestiegen sind (VC++ oder so).

    Falsch. 😉

    Du tust ja grad so, als wäre VC++ so anders, dass man darüber zu völlig falschen Vorstellungen von -> kommen könnte. 🙂
    Nur zur Erinnerung: Der VC++ ist standardkonform und bietet (abschaltbare) Erweiterungen.



  • Na, sowie Du es sagst:

    VC6 standardkonform ? Hmmm....

    Ich bin aber auch der Meinung das man sich viel versaut wenn man Compilerspezifisch anfängt.

    Ich sehe z.B. bei Leuten die mit Microsoftzeugs gelert haben oft solchen code:

    if(irgendwas==true)
    {
       // 10 Zeilen Source
       if(FensterIstAuf)
       {
         // 30 Zeilen Source
    
         if(irgendwas anderes)
         {
           // xx Zeilen Source
    
            if(.... und so weiter
    
         }
       }
    }
    

    Das den Leuten abzugewöhnen is nich einfach :o(

    Der längste if Block (Visual Basic) hat in der Firma hier immerhin 758 Zeilen :o( (wieviel das wohl in C gewesen wären ?) 🤡



  • [quote="Optimizer]Du tust ja grad so, als wäre VC++ so anders, dass man darüber zu völlig falschen Vorstellungen von -> kommen könnte. :)[/quote]
    Falls du das nicht absichtlich falsch verstanden hast: Ich meine über Sachen wie MFC in 2 Stunden, wo das erste Fenster steht, bevor man begriffen hat was überhaupt eine Variable ist. Auf die Standardkonformität des Compilers hab ich überhaupt nicht angespielt, frag mich wie du darauf jetzt kommst.



  • derefferenzierungsoperator nennt man den "->"



  • Der Dereferenzierungsoperator ist der hier: *



  • Hi,

    nein! * ist der Dereferenzierungsoperator. -> dereferenziert zwar auch, aber führt gleichzeitig noch eine Zugriff auf eine Membervariable/Methode durch.

    ChrisM



  • . Punktoperator
    -> Pfeiloperator
    * Dereferenzierungsoperator
    So damit haben wir alle die damit etwas zu tun haben
    und evt. noch
    &Adressoperator



  • @Bashar: Du hast von Leuten geredet, "die C++ nicht von den Grundlagen her gelernt haben, sondern irgendwie anders eingestiegen sind (VC++ oder so)."
    Das ist IMHO Unfug, weil man für VC++ genauso die Grundlagen lernen muss, bzw. wenn man mit VC++ programmiert, lernt man genauso die Grundlagen. Es hat sich ein bisschen so angehört, als wäre VC++ fast ne andere Sprache...

    Dass du das auf MFC beziehst, war mir nicht klar, aber Schwamm drüber. 🙂


Anmelden zum Antworten