CRgn *BorderRgn(CRgn &rgn) <- kennt jemmand einen besseren weg?
-
Hallo.
Habe eine Funktion geschrieben die eine Klasse CRgn als Rückgabewert liefert.
Nun wollte ich fragen was sinnvoller ist.So ...
CRgn *BorderRgn(CRgn &rgn)
{
CRgn *MeineRegion = new CRgn();//... (MeineRegion ist jetzt ein Pointer, also alle member über -> ansprechen)
return MeineRegion;
}oder so ?
CRgn *BorderRgn(CRgn *rgn)
{
CRgn *MeineRegion = new CRgn();//... (MeineRegion ist jetzt ein Pointer, also alle member über -> ansprechen)
return MeineRegion;
}was frist weniger Speicher ?
Oder kennt jemmand eine noch bessere Variante ?Gruß Ronny W
-
Ich würde niemals einen Zeiger zurückgeben, da ich meistens die Funktionsheader an andere Teamkollegen weitergebe. Woher sollen die nun wissen, wie sie diesen Pointer freizugeben haben (delete/free).
Besser wäre folgender Funktionskopf:
BOOL BorderRgn(const CRgn &rgnIn, CRgn& rgnOut) { BOOL bResult = rgnOut. ;// erstellen return bResult; }oder:
BOOL BorderRgn(const CRgn &rgnIn, CRgn* pRgnOut) { BOOL bResult = pRgnOut-> ;// erstellen return bResult; }
-
Läuft perfekt!