Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Wie schon angetönt ist new einfach sehr heikel, sobald mehrere Ablaufpfade vorhanden sind, ein Wert von einer Funktion zurückgegeben werden muss, oder für Wertsemantik im Allgemeinen. Es stellt sich immer die Frage, wann wer freizugeben hat, jedes return in einer Funktion mit Speicheranforderung muss von deletes begleitet werden und jeder Code, der Exceptions werfen kann (und das ist mehr als du denkst), erfordert hässliche try-catch-Blöcke mit Aufräumarbeiten und Exception-Weiterwerfen. Um diese Probleme zu umgehen, sieht man teilweise Verzicht auf Exceptions, Konzepte wie Single-Entry-Single-Exit und andere fragwürdige Angelegenheiten.Zitat von »"CBenni::O"«
Ja, das ist schon klar. Ich meinte, im vergleich zu z.B. boost::shared_ptr etc.
idontknow
unregistriert
Zitat von »"CBenni::O"«
Konstruktoren statt Init
Zitat von »"CBenni::O"«
Destruktoren
Zitat von »"CBenni::O"«
Weniger (oder vllt auch keine?) Memoryleaks
Zitat von »"CBenni::O"«
const da eingesetzt, wo es ging
Zitat von »"CBenni::O"«
Einheitliche returnwerte, bzw. Überflüssige entfernt
Zitat von »"CBenni::O"«
Header in einen seperaten Ordner
Zitat von »"CBenni::O"«
Ich habe mich dagegen entschieden, RAII bzw. auto_ptr's einzusetzen, da damit zu viel arbeit für zu wenig Ergebnis anfällt.
Zitat
C-/C++-Quelltext
1 #define SAFE_DELETE(X){ if(X != NULL){delete (X); X=NULL;} }
Werbeanzeige