Hello,
this parameterkent atadasa mint referencia vagy inkabb pointer?
class A {
public:
void xx()
{
yy(5, *this);
zz(5, this);
}
private:
void yy(int x, A &a)
{
//...
}
void zz(int x, A *a)
{
//...
}
};
- 1253 megtekintés
Hozzászólások
Én szerintem teljesen mindegy, ugyanazt csinálod mindkettővel. De ha nem így van, majd kijavítanak :)
Esetleg azért lehet célszerűbb a referencia, mert akkor az "yy" metódusodban nem kell szórakozni a pointerekkel.
---
"Ne ugass be mert felveszlek MSN-en és letiltalak vazze!"
- A hozzászóláshoz be kell jelentkezni
Referencia jobb...
- A hozzászóláshoz be kell jelentkezni
Szerintem rosszul teszed föl a kérdést. Az yy/zz függvények két A típusú objektummal tesznek valamit. C++-ban, ha objektumot adunk át, a referencia a "természetes" módja, így én az yy-ra szavaznék.
Az csak speciális eset, hogy néha a this-t adod át neki.
KisKresz
- A hozzászóláshoz be kell jelentkezni
A pointer abban különbözik csak a referenciától, hogy konvertálható int-é, és felveheti a NULL-t. Ezt a referencia nem tudja, "az mindig mutat valahová".
--
The Net is indeed vast and infinite...
http://gablog.eu
- A hozzászóláshoz be kell jelentkezni
Ezenkivul a referencia immutable.
while (!sleep) sheep++;
- A hozzászóláshoz be kell jelentkezni
Úgy 83.7%-ban érdemes referenciát használni, de azon kívül kissé rossz a példa, mert
-this-t osztályon belül átadni felesleges, automatikusan átadódik anélkül is
-nem derül ki, hogy milyen kontextusban kell
- A hozzászóláshoz be kell jelentkezni
ok, kosz mindenkinek, csak azt akartam hallani, hogy a *this egeszseges dolog :)
- A hozzászóláshoz be kell jelentkezni