Es ist verflixt
-
Hi, habe gut Hilfe von Euch zu const Pontern etc. bekommen...doch es funktioniert nicht wirklich das wass ich will!
Habe ein Funktion die mir ein (const DtzSprite * const) zurückgibt!
const DtzSprite * const a = Engine.PopSprite(0,0); delete a; //Das soll nicht funktionieren!
Ich wollte es eigentlich so haben, das mein zurückgegebenes Sprite
nicht von außen "deletebar" ist. Dachte, delete gibt mir nen Fehler, wenn es versucht, das const DtzSprite zu löschen. Löschen ist doch quasi auch ein verändern des Objekts, und dachte const-Objekte dürfen nicht verändert werden!
Weiss jemand wie ich nen Pointer auf ein Objekt zurückgeben kann, ohne das jemand von außen mit Hilfe dies Pointers das Objekt deleten kann ? Wäre echt hilfreich
Gruss
Finalbrainxp
-
class A { ~A() { } void Release() { delete this; } };
-
??
-
Wofür brauchst du denn den Pointer? Schon mal überlget, ersatzweise ne Referenz
zurückzugeben?
-
Ja, die würde ich dann als Alternativen benutzen, will aber nur wissen, ob sowas auch mit Pointern realisierbar ist!
-
Shlo schrieb:
class A { ~A() {} //= private. };
delete löscht auch const objekte. wenn der dtor private ist geht das allerdings auch nicht.
-
davie
Merci..das war schon die Lösung...hat perfekt gefunzt..greetz@all
-
class A { private: ~A() { } };
den destruktor 'private' machen.
sollte reichensorry, ich war etwas zu lahm
-
trotzdem thanx