kalder member function igennem this->

Tags:    c++

Hejsa.
Det er et meget hurtigt spørgsmål. hvis jeg har kalder en funktion fra en class i en anden funktion i samme klasse. Hvad er forskellen så på at kalde den med this->funktion() eller bare kalde funktionen således funktion().

eller forklaret med kode

class myClass()
{
void funktion1()
{
cout << "funktion1";
}

void funktion2()
{
//forskellen mellem
funktion1();
//Og
this->funktion1();
}

Håber i forstår mit spørgsmål ;) ellers må jeg forklare mig bedre.

Mvh.
Nick



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Hej Nicklas,

Der er, mig bekendt, ingen forskel. Ved at skrive this så signalerer du dog over for den næste der læser koden, om det så er dig selv eller en anden, at du kalder en funktion som kommer fra klassen selv. Det er måske mindre vigtigt ved funktioner, men fx variabler kan være både lokale, komme fra en parameter eller være en member fra klassen. Der kan det godt hjælpe på overskueligheden hvis man prefixer med this :). Men dybest set er det op til dig selv, med mindre du er pålagt fx et firmas kodestandarder der dikterer noget på det punkt.

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 22.02.2012 10:13 af Bruger #1
Tak for svaret.
Okay det var nogenlunde også det jeg havde fået testet mig frem til. Men der var et eller andet der sagde mig at man kaldte funktionen i den statiske klasse, ala. class::function().

Men cool nok jeg takker ;)



Statiske members er noget andet. Der skal du som regel skrive som du gør det, altså klassens navn efterfulgt af :: og så den member du gerne vil tilgå. Visse sprog, fx PHP, har keywords som self og parent, der lidt fungerer som det statiske modsvar til this, men jeg tvivler på at C++ har det samme - dog uden at vide det :)

Selv tak - husk at stemme, som beskrevet øverst i din tråd :)

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 22.02.2012 11:23 af Bruger #1
Hermed gjort ;)



t