har en klass i C++ som har en function: Kan tyvärr inte särskilt mycket c++. Om du förklarar lite kanske jag kan hjälpa. Vad betyder "this->Age"? pekare av något slag Den returnerar alltså objektets variabel "age"? Jag vet inte riktigt vad du vill. Hämta variabeln Age genom en funktion antar jag att du kan: Men om man har flera av samma klass?? Keywordet this i C++ är ingenting annat än en pekare till den aktuella instansen av klassen, till sig själv helt enkelt. Alltså, om du deklarerar två instanser av klassen så kommer this inte att peka på samma objekt utan två olika och därmed kommer GetAge att returnera olika värden för de olika objekten.klasser
int person::getAge()
{
return this->Age;
}
sen deklarerar jag så här:
person e1;
e1 = 15;
cout << e1.getAage();
vill göra samma sak i delphi, men kommer inte på något bra sätt att göra function getAge
någon som vet ett sätt?
/bjSv: klasser
/IvarSv: klasser
This tror jag betyder "den här instansen av klassen" eller något
sen Age är en integer:
int Age;
jag kan inte förklara mycket utförligare...=(
/bjSv: klasser
function person.getAge : integer;
begin
getAge := Age;
end;
Är det detta du vill fixa? Jag tror det innebär att objektet tilldelas 15 som automagiskt placeras i variabeln Age. Tyvärr vet jag i så fall inte hur det skall genomföras.
person e1;
e1 = 15;
cout << e1.getAage();Sv: klasser
tex
var e1,e2:person
blir det samma sak då? eller blir det att båda får samma sak?
om man gör:
e1.age = 15;
e2.age = 16;
?
/bjSv: klasser
Att skriva "this->Age" innebär alltså att man refererar till Age-propertyn (eller funktionen eller variablen eller vad Age nu är för typ) i samma instans, men eftersom this alltid är default så borde man lika gärna kunnat skriva "return Age"...att referera till sig själv när man ska anropa en egen funktion/variabel/property är oftast onödigt men kan användas för att vara tydlig om det finns andra funktioner/variabler/properties med samma namn.
Det finns säkert renläriga OO-människor som anser att man alltid ska ange objektet när man anropar en funktion, även om det är default objektet (dvs sig själv). Själv orkar jag inte...
Med reservation för att mina C++-kunskaper kan vara Out Of Date...
/Per Hultqvist