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.