[megoldva] this mint parameter: referencia || pointer?

 ( vikee | 2009. január 8., csütörtök - 9:20 )

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)
{
//...
}
};

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

É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!"

Referencia jobb...

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 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

Ezenkivul a referencia immutable.

while (!sleep) sheep++;

Ú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

ok, kosz mindenkinek, csak azt akartam hallani, hogy a *this egeszseges dolog :)