Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » this

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.01.2006, 00:21 Uhr
~ref
Gast


Meine frage ist ob "this zeiger" in diesem beispiel mit dem wert/adresse von rhs oder mit whiskers zu tun hat??


C++:
// Listing 14.6

// Kopierkonstruktoren

#include <iostream>



class CAT

{

public:

     CAT(); // Standardkonstruktor

     // Aus Platzgründen auf Kopierkonstruktor und Destruktor verzichtet!

     int GetAge() const { return *itsAge; }

     int GetWeight() const { return *itsWeight; }

     void SetAge(int age) { *itsAge = age; }

     CAT operator=(const CAT &);



private:

     int *itsAge;

     int *itsWeight;

};



CAT::CAT()

{

     itsAge = new int;

     itsWeight = new int;

     *itsAge = 5;

     *itsWeight = 9;

}





CAT CAT::operator=(const CAT & rhs)

{

          if (this == &rhs)

         return *this;

     delete itsAge;

     delete itsWeight;

     itsAge = new int;

     itsWeight = new int;

     *itsAge = rhs.GetAge();

     *itsWeight = rhs.GetWeight();

     return *this;

}





int main()

{

     CAT frisky;

     std::cout << "Alter von Frisky: " << frisky.GetAge()

         << std::endl;

     std::cout << "Alter von Frisky auf 6 setzen...\n";

     frisky.SetAge(6);

     CAT whiskers;
    
     std::cout << "Alter von Whiskers: " << whiskers.GetAge()

         << std::endl;

     std::cout << "Frisky auf Whiskers kopieren...\n";

     whiskers = frisky;

     std::cout << "Alter von Whiskers: " << whiskers.GetAge()

         << std::endl;

     return 0;

}



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.01.2006, 05:54 Uhr
Spacelord
Hoffnungsloser Fall


Hallo,
this bezieht sich immer auf das Objekt für dass eine Methode aufgerufen wird.
whiskers = frisky ist das Gleiche wie whiskers.operator=(frisky);
Also ist this in diesem Zusammenhang ein Alias für das whiskers Objekt.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.01.2006, 08:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


this ist dann ganz praktisch, wenn man keine lust hat sich neue Variablennamen auszudenken wenn die members deines objektes dann also genauso heissen wie die variable die du in einem getter/setter oder konstruktor übergibst...

dann kannst du das doppelbennunggsprolbem mit this->member = member umgehen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: