Instanziierung über Zeiger



  • Hallo!

    Ich habe folgendes Problem.
    Folgende Methode soll die Klasse Punkt (x,y) zurückgeben.

    punkt* dreieck::get_p_i(int i)
    	{
    		punkt* pp;
    		pp = new punkt();
    		pp->setz(p[i]->get_x(), p[i]->get_y());
    		return pp;
    		delete pp;
    	}
    

    Das Problem ist aber, dass hier "pp" nie zerstört wird.
    Ich habe versucht die Methode so zu gestalten.

    void dreieck::get_p_i(int i, punkt *_p)
    {
    	_p->setz(p[i]->get_x(), p[i]->get_y());
    }
    

    Aber das funktioniert nicht.

    Wie kann man das lösen?

    Danke!



  • void dreieck::get_p_i(int i, punkt& _p)
    {
    // evtl. indexüberschreitung mit i überprüfen
        _p->setz(p[i]->get_x(), p[i]->get_y());
    }
    
    dreieck d;
    ...
    punkt p;
    d.get_p_i(5, p);
    


  • delete pp wird nie aufgerufen, da die Methode mittels return vorher verlassen wird.


Anmelden zum Antworten