Du bist nicht angemeldet.

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

1

05.10.2008, 12:43

Der Sinn einer Quit-Funktion

Hi,
ich habe mal eine Frage, für dessen Antwort ich mich schon lange interessiere:
In diversen C++ Bibliotheken, Sources etc. werden beim Beenden eines Programms, zuvor erstellte Klassen durch eine Quit-Funktion "gelöscht".
Wieso nimmt man dafür nicht einfach den Konstruktor um sich das Aufrufen der Funktion zu sparen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

05.10.2008, 12:57

Re: Der Sinn einer Quit-Funktion

Du meinst wohl den Destruktor!?

Ich tippe mal drauf du meinst so Dinge wie z.B. die Release() Methode von COM Objekten!?
Solche Objekte werden in irgendeiner dll instanziert, du bekommst nur einen Zeiger zurück. Du kannst nicht einfach den Destruktor eines solchen Objektes aufrufen (können schon, is jetzt aber nicht so toll das zu tun).
Objekte die in einer dll erstellt wurde, sollten auch in dieser dll wieder freigegeben werden. Denk nur z.B. an überladene new/delete operatoren. Würde die dll intern einen überladenen operator new benutzen um das Objekt zu instanzieren und dein Programm dieses Objekt dann direkt mit delete freigeben, so wird der falsche operator delete benutzt, was natürlich schlecht ist.

3

05.10.2008, 16:50

Denk eher er spielt auf die Tollen Init und Exit-Funktionen der TB-Engine an :D Sind unter C++ unnötig. Okay ist gibt spezialfälle aber normal kannste die getrost einfach im Konstruktor u. Destruktor abhandeln.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

05.10.2008, 16:52

Zitat von »"Deviloper"«

[...] aber normal kannste die getrost einfach im Konstruktor u. Destruktor abhandeln.


Und wenn sie fehlschlagen können? Exception (aus der dll raus!?) oder Objekt in ungültigem Zustand hinterlassen oder Methode/Funktion zum Fehlerabfragen!?
Sind auch net unbedingt immer die elegantesten Lösungen imo...

Werbeanzeige