Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 07.08.2006, 12:29 Titel: |
|
|
Man kann Singletons allerdings auch so implementieren, dass man sie selber erstellt und löscht. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 07.08.2006, 14:30 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | Achja, heißt es der die oder das Singleton? |
"das", kommt von "Singleton-Prinzip"; generell sagt man aber auch manchmal "der", da gibts keine Eindeutigebestimmung, weils halt ein eingeseutschtes Fremdwort ist. |
|
Nach oben |
|
|
unsigned long Junior JLI'ler
Anmeldedatum: 02.07.2006 Beiträge: 52
Medaillen: Keine
|
Verfasst am: 27.08.2006, 21:55 Titel: |
|
|
Tolles Tutorial, aber bitte Finger weg von malloc und free, da die keine Konstruktoren kennen und laut Standard diese nicht aufrufen müssen/können/dürfen. Tun sie dies doch - glück gehabt, aber das ist nicht die Regel.
Wenn malloc, dann sollte man die Construktoren manuell aufrufen, damit ein aufruf gewährleistet ist. Da gibt es jedoch das Problem der Doppelinitialisierung, falls malloc dies macht.
Benutz besser HeapAlloc/HeapFree (allein schon aus Geschwindigkeitsvorteilen und Fehlerprüfungen) und ruf die c'tors und d'tors manuell auf. So ist gewährleistet, das es keine bösen Überraschungen gibt. |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 28.08.2006, 09:52 Titel: |
|
|
Hi!
In diesem Fall wird der C'tor immer aufgerufen. Nicht der Operator new/delete wird überschrieben sondern die Methode(n) Operator new/delete welche von Operator new/delete aufgerufen werden. Für das aufrufen der C'toren ist Operator new zuständig, die Methode(n) Operator new/delete sind lediglich für das reservieren des Speichers zuständig und dazu ist malloc/free ausreichend.
Tatsächlich sollten trotzdem noch einige Kriterien erfüllt werden um einen guten Memory Manager zu realisieren, aber für eine simple Demonstration wäre das zuu overkilled gewesen, zudem würde bei vielen der "Aha" Effekt wohl ausbleiben.
grüße |
|
Nach oben |
|
|
unsigned long Junior JLI'ler
Anmeldedatum: 02.07.2006 Beiträge: 52
Medaillen: Keine
|
Verfasst am: 28.08.2006, 13:57 Titel: |
|
|
David hat Folgendes geschrieben: | Für das aufrufen der C'toren ist Operator new zuständig, die Methode(n) Operator new/delete sind lediglich für das reservieren des Speichers zuständig und dazu ist malloc/free ausreichend. | Ich habe grade mal im aktuellen Standard nachgeguckt, da gibt es keine Richtlinie die diese Aussage vertritt. Kannst Du ggf. die Richtliniennummer sagen? |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
|
Nach oben |
|
|
|