Hallo sirius,
ich bestreite nicht, daß ein wenig
compiler magic in diesem Fall nützlich wäre. Ich wollte - genau wie xaromz - nur aufzeigen, daß es nicht in allen Fällen möglich sein wird, die notwendigen Befehle zum Löschen der Referenz(en) automatisch erzeugen zu lassen. Dies scheitert meiner Meinung nach spätestens dann, wenn die Referenz ein Funktionsergebnis ist. Ob es sinnvoll ist, so etwas zu programmieren, sei dahingestellt. Es
kommt vor, deshalb muß ein Compiler auch diese Fälle berücksichtigen. Kann er diese Aufgabe aber nicht vollständig übernehmen, so daß ich als Programmierer gezwungen bin, in "schwierigen" Situation selbst tätig zu werden, dann trifft xaromz' Aussage auch für mich zu:
In einer solchen Sprache möchte ich nicht programmieren.
Zitat:
Und wenn du mit mehreren Referenzen auf ein Objekt arbeitest, dann nimm doch lieber ein Interface.
Genau das mache ich (nicht nur in diesem Fall) auch. Die wenigen Probleme (z.B.
cyclic references) lassen sich relativ leicht lösen, auf der anderen Seite stehen eine (fast) automatische Speicherverwaltung und -freigabe sowie bessere Möglichkeiten, ein großes Programm zu modularisieren.
Gruß Hawkeye