Sigdal Skrevet 6. august 2010 Del Skrevet 6. august 2010 (endret) Klassen Node har metodene Node * MakeLeftNode() {Node * newptr = new Node; this->LPtr = newptr; return newptr;} og void Node::Copytree(Node * ptr){ ptr = ptr->MakeLeftNode(); } Spørsmålet er i det siste kallet: vil 'this'-pointeren som refereres til i MakeLeftNode-metoden peke på objektet som 'ptr' peker til eller til objektet vi er i når kallet gjøres? Svar raskt:) Endret 6. august 2010 av Sigdal Lenke til kommentar
Jassogitt Skrevet 7. august 2010 Del Skrevet 7. august 2010 this vil vel alltid peke på objektet du er i når kallet gjøres? Lenke til kommentar
TheMaister Skrevet 7. august 2010 Del Skrevet 7. august 2010 (endret) void Foo::bar() { // foo er member i klassen Foo. foo = 0; } Dette er helt ekvivalent med void Foo::bar() { this->foo = 0; } this er objektet som "behind the scenes" sendes til funksjonen Foo::bar(), og som gjør at funksjonen kan skille mellom forskjellige objekter fra samme klasse. I python f.eks må man eksplisitt ta i mot this (self)-objektet og bruke self.foo, dette gjør C++ automagisk. Hvis man skulle kodet det samme i C ville det ha sett slik ut void foo_bar(struct foo *this) { this->foo = 0; } Så med ptr->MakeLeftNode(), vil ptr være this i den metoden. Endret 7. august 2010 av TheMaister Lenke til kommentar
Sigdal Skrevet 7. august 2010 Forfatter Del Skrevet 7. august 2010 (endret) Så med ptr->MakeLeftNode(), vil ptr være this i den metoden. Takk, jeg kommer til samme resultat etter noen forsøk. Endret 7. august 2010 av Sigdal Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå