Rückgabewert mit new angelegt, wo loeschen?
-
< Memoryleak detected >
Code Corrector [active] schrieb:
< Error Detected >
void Funktion(char *&p)< Correction >
void Funktion(char *p)
-
Da kann man mal wieder sehen, wie objektorientiertes Programmieren mit steigender Komplexität vermeintlich das Denken ersetzt.
Wir schreiben einfach delete und Peng alles ist gut.
Oder hach, nehmen wir doch gleich Smartpointer, dann brauchen wir gar nicht mehr zu denken.Muahuahua.
Where is my head today ?
MfG
I forgot my nameOh, God, make my sourcecode, amen.
-
-> "Wir schreiben einfach delete und Peng alles ist gut. "
oder wir nehmem Java...Aber ich will was zum denken... alles selber in der Hand haben
-
Brainless Wanderers schrieb:
Da kann man mal wieder sehen, wie objektorientiertes Programmieren mit steigender Komplexität vermeintlich das Denken ersetzt.
Wir schreiben einfach delete und Peng alles ist gut....Ha ! Da zeigt sich jahrelange Erfahrung mit großen Projekten !!

"Wir": Schreibe einmal new/malloc und x-mal "delete/free" (und bei jeder Änderung wieder ein paar mehr)
OO: Schreibe EINMAL "smartpointer" - fertig für alle Zeit!Kann jeder selbst wählen, was komfortabler, sicherer, schöner, kürzer, übersichtlicher, .... findet.

Gruß,
Simon2.
-
Simon2 schrieb:
OO: Schreibe EINMAL "smartpointer" - fertig für alle Zeit!
Nein: Nicht OO, sondern RAII. Der Unterschied: das Laufzeitoverhead.

(OO impliziert für mich Laufzeitpolymorphie.)
-
Konrad Rudolph schrieb:
Simon2 schrieb:
OO: Schreibe EINMAL "smartpointer" - fertig für alle Zeit!
Nein: Nicht OO, sondern RAII. Der Unterschied: das Laufzeitoverhead.

(OO impliziert für mich Laufzeitpolymorphie.)
Nur zur Erinnerung: ICH war nicht derjenigem der die Verwendung von smartpointern auf "OO" verkürzte.

Gruß,
Simon2.
-
We would have to point out:
Smart Pointers are smashing, they kick ass.

-
Konrad Rudolph schrieb:
Wieso eigentlich ne Zeiger-Referenzübergabe? Wenn man schon s 'nen Zeiger nimmt, kann man ihn auch per 'return' zurückgeben. Besser wird's dadurch natürlich auch nicht …
soll das heißen wenn man pointer returnt das das schlechter stil ist? ich finde es eig. nen gutes hilfsmittel um platz auf dem heap zusparen. was macht es für nen sinn nen riesiges objekt zu returnen? mann kann auch einfach nen pointer darauf returnen.
-
Eldarion schrieb:
Konrad Rudolph schrieb:
Wieso eigentlich ne Zeiger-Referenzübergabe? Wenn man schon s 'nen Zeiger nimmt, kann man ihn auch per 'return' zurückgeben. Besser wird's dadurch natürlich auch nicht …
soll das heißen wenn man pointer returnt das das schlechter stil ist? ich finde es eig. nen gutes hilfsmittel um platz auf dem heap zusparen. was macht es für nen sinn nen riesiges objekt zu returnen? mann kann auch einfach nen pointer darauf returnen.
ich finds schöner den benutzer das objekt selbst erstellen und übergeben zu lassen und referenzen zu verwenden, wenns um komplexe objekte geht.
void myfunc(Userobject &o); // statt Userobject* myfunc();
-
Eldarion schrieb:
...
soll das heißen wenn man pointer returnt das das schlechter stil ist? ...Ich denke, "verteilte Zuständigkeiten" machen oft eine Menge Probleme und dazu gehören auch (und gerade) die Trennung von "Erzeuger" und "Löscher". ("... Der Herr hat's gegeben, der Herr hat's genommen ..."
)Gruß,
Simon2.
-
danke für eure Bemühungen!
Ich denke ich weiss nun was zu tun ist
muli