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!


Anmelden zum Antworten