Mitä tarkoittaa '->' -merkki luokan ja metodin välissä? Esim MyClass->myMethod() ? Mitä eroa siinä on MyClass.myMethod():iin?
-> operaatio ??
jussipussipuuta
7614
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
jos sulla on pointterimuuttuja, niin käytä nuolta, muuten pistettä.
Oletetaan, että on muuttuja myClass ja luokka MyClass.
myClass->myMethod()
Tarkoittaa, että kutsut joko:
1) MyClass-luokan pointerin kautta
2) MyClass-luokan metodia: operator->()
Taas myClass.myMethod() on taas olion metodikutsu (muuttuja on itse olio tai sen viite).
Eli jos väännetään vielä rautalangasta:
// luokka MyClass
// esittely & alustus:
MyClass *pPointer = new MyClass();
//metodin kutsutyyli:
pPointer->myMethod();
tapa 2:
// esittely
MyClass myInstance;
// kutsutyyli:
myInstance.myMethod();
Ja tietenkin new:tä käytettäessä on lopuksi muistettava vapauttaa varattu muisti delete:llä.
>
Toi on enemmänkin Javaa. Standardi C :lla siis näin:
MyClass* pPointer = new MyClass;
Tosin tää menee jo pahasti OT. Pitipä taas tuokin mainita ;)
Missä mielessä enemmän javaa? Tyhjät sulut kertovat vaan sen että konstruktori ei tarvitse parametrejä. Aika pitkälle enemmän tyyli/tottumuskysymys kuin kieleen viittaava.
Totta turiset. Toi on todellakin tyylitottumus.
eli ei alkuunkaan sitä mitä yritit tehdä.