Diamond of death
-
hustbaer schrieb:
Nachdem du selbst noch nix entwickelt hast
Ist bei mir eigentlich nur Motivationsmangel. Wie haltet ihr immer so lange durch bei euren Projekten?
hustbaer schrieb:
kannst du zwar die Beobachtung anstellen dass der DOD selten vorkommt
Ich habe um ehrlich zu sein noch nirgens einen DOD gesehen, außer bei den IO-Streams.
hustbaer schrieb:
aber nicht sagen warum.
Ich kann nur Vermuten. Dass der DOD Probleme erzeugt, liegt auf der Hand.
hustbaer schrieb:
Deine Vermutung scheint zu sein, dass es so selten Fälle gibt, wo der DOD überhaupt vorkommen könnte.
Ist dem nicht so?
hustbaer schrieb:
Ich würde eher behaupten dass man den DOD in fertiger Software so selten sieht, weil man sich damit einfach diverse Probleme/Nachteile einhandelt.
Das ist wohl auch war.
-
Ich habe hier anscheinend eine Grundsatzdiskussion losgetreten.

Aber wen es interessiert, hier mal mein Grund, auf das von mir verhasste Konzept zurückzugreifen: Ich möchte für eine Schnittstelle Interfaces anbieten, die wirklich rein abstrakt sind. Diese Interfaces werden mit Objekten durch eine Factory bestückt und an den Kunden weitergereicht. Wenn ich jetzt eine Basisklasse für Interfaces schreiben will (um Funktionalität nicht kopieren zu müssen), muss ich von dieser sowohl beim Interface als auch bei der Implementierung ableiten.Basisinterface
/ \
Interface Basisimplementierung
\ /
Interfaceimplementierung
Ich bin selber wie gesagt absolut kein Fan von MI, aber habe mich auf diese Struktur geeinigt.
PS: .. und bin soeben auf ein erstes Problem dabei gestoßen, was mir wahrscheinlich die Struktur zerschießt. Wenn ich versuche, einen Pointer auf das Interface zu löschen, laufe ich im Debug in einen Heap error. Kann es daran liegen, dass er die Basisimplementierung nicht richtig mitkriegt? Wie sieht es generell bei MI aus, wenn ich auf eine der mehreren Basisklassen caste und diese versuche zu löschen?
PPS: Ein virtueller Destruktor ist schon ne feine Sache.
