<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Objekt selbst löschen]]></title><description><![CDATA[<p>Man kann ein Objekt selbst löschen, wenn man &quot;delete this&quot; ausführt. Leider ziegt dann dieser this-Zeiger immer noch auf dieses irreguläre Objekt. Wie kann man diesen this-Zeiger im Destruktor so verbiegen, dass er z.B. auf 0 zeigt? So, dass ein Aufruf des Objekts einen Programmfehler/-abbruch verursacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154906/objekt-selbst-löschen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 03:26:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154906.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Jul 2006 20:34:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 20:34:48 GMT]]></title><description><![CDATA[<p>Man kann ein Objekt selbst löschen, wenn man &quot;delete this&quot; ausführt. Leider ziegt dann dieser this-Zeiger immer noch auf dieses irreguläre Objekt. Wie kann man diesen this-Zeiger im Destruktor so verbiegen, dass er z.B. auf 0 zeigt? So, dass ein Aufruf des Objekts einen Programmfehler/-abbruch verursacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108039</guid><dc:creator><![CDATA[gelbfinger]]></dc:creator><pubDate>Mon, 31 Jul 2006 20:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 20:53:40 GMT]]></title><description><![CDATA[<p>Das geht nicht, und das ist auch gut so. Wenn du delete this aufrufst wird der Destruktor aufgerufen.<br />
Wenn du das Objekt dann weiterverwendest dann machst du was in deinem Programm falsch.<br />
Wenn du dafür sorgen willst, dass das Programm endet dann benutze exit(0) oder schmeiß ne exception von der du weißt das Sie nicht gefangen wird. Was weiß ich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108047</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Mon, 31 Jul 2006 20:53:40 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 21:03:02 GMT]]></title><description><![CDATA[<p>Mir geht es um die Entwicklung eines neuen Singleton-Typs. Ich möchte keinesfalls, dass das Programm ins Bodenlose abstürzt. Das Objekt darf aber nicht weiterverwendbar sein. Daher möchte ich es möglichst sicher &quot;entsorgen&quot;, &quot;blockieren&quot; ... Es darf keine Methode des Objektes nach Aufruf des Destruktors mehr ausführbar sein. Wenn das klappen würde, wäre toll. Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108058</guid><dc:creator><![CDATA[gelbfinger]]></dc:creator><pubDate>Mon, 31 Jul 2006 21:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 21:07:46 GMT]]></title><description><![CDATA[<p>Setz ein Flag im Singleton ob das Objekt noch lebt oder nicht und gib, wenn das Objekt nicht mehr existiert einen Nullzeiger zurück.</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108061</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Mon, 31 Jul 2006 21:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 21:27:27 GMT]]></title><description><![CDATA[<blockquote>
<p>Setz ein Flag im Singleton ob das Objekt noch lebt oder nicht und gib, wenn das Objekt nicht mehr existiert einen Nullzeiger zurück.</p>
</blockquote>
<p>Das habe ich auch schon überlegt. Aber es soll auch wie folgt laufen:</p>
<p>MySingleton SingleObj1;<br />
SingleObj1.show(); //Infos<br />
SingleObj1.doSomeThing(); //Methode</p>
<p>MySingleton SingleObj2;<br />
//RefCount im Konstruktor,Copy-Konstruktor bzw. Op= löst &quot;delete this&quot; aus<br />
//Destruktor soll nun geordnet dafür sorgen, dass folgendes nicht mehr geht:<br />
SingleObj2.show(); //Bumm!<br />
SingleObj2.doSomeThing(); //Bumm!</p>
<p>Wie soll das mit einem Null-Zeiger verhindert werden?<br />
Daher wollte ich ja &quot;this&quot; auf Null setzen, das blöde Ding ist aber kein Lvalue.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108067</guid><dc:creator><![CDATA[gelbfinger]]></dc:creator><pubDate>Mon, 31 Jul 2006 21:27:27 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 21:44:02 GMT]]></title><description><![CDATA[<p>Was ist denn das für ein Singleton?!</p>
<p>Meine Singletons lassen sich normalerweise garnicht instanziieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108079</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 31 Jul 2006 21:44:02 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 22:02:09 GMT]]></title><description><![CDATA[<p>ganz einfach:</p>
<p>Singleton 1:<br />
ctor erhöht refCount von 0 auf 1.</p>
<p>Singleton 2:<br />
ctor/copycon stellt fest, dass refCount == 1 und löst sofort &quot;delete this&quot; aus. Jetzt muss die &quot;Todgeburt&quot; des zweiten Objekts nur möglichst vollständig gelingen.</p>
<p>Wenn das sinnvoll gelingen würde, bräuchte man nicht diesen hässlichen static Mist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108085</guid><dc:creator><![CDATA[gelbfinger]]></dc:creator><pubDate>Mon, 31 Jul 2006 22:02:09 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Mon, 31 Jul 2006 22:59:26 GMT]]></title><description><![CDATA[<p>Irgendwie kann ich mir nicht vorstellen, dass diese Konstruktion in irgendeinem Fall was nützt. Schildere doch mal, was du ursprünglich damit bezwecken willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108107</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 31 Jul 2006 22:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Tue, 01 Aug 2006 06:34:45 GMT]]></title><description><![CDATA[<p>Ich denke er will einfach verhindern das eine zweite Instanz seines Singletons erzeugt werden kann. Dazu das Objekt zwingen sich selbst zu löschen ist allerdings kein guter Gedanke. Der &quot;hässliche static Mist&quot; ist garnicht so schlecht wie man denken sollte...<br />
Es ist irgendwie nicht besonders sinnvoll ein halb initialisiertes Objekt zu löschen... Nunja.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108172</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 01 Aug 2006 06:34:45 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Tue, 01 Aug 2006 08:33:18 GMT]]></title><description><![CDATA[<p>Ich glaube, du gehst von der falschen Seite an dein Problem heran - statt überschüssige Objekte zu vernichten, kannst du gleich ihre Entstehung abblocken (alle Konstruktoren und Zuweisung privat setzen und Zugriff über eine statische Funktion, die immer das <strong>EINZIGE</strong> Singleton zurückgibt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108251</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 01 Aug 2006 08:33:18 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Tue, 01 Aug 2006 17:08:17 GMT]]></title><description><![CDATA[<p>gelbfinger schrieb:</p>
<blockquote>
<p>Ich möchte keinesfalls, dass das Programm ins Bodenlose abstürzt. Das Objekt darf aber nicht weiterverwendbar sein.</p>
</blockquote>
<p>Wenn du es gelöscht hast kann es auch gar nicht weiterverwendet werden.</p>
<p>Du kannst höchstens den Speicher, den es mal belegt hat, auslesen<br />
und manipulieren.</p>
<p>Und wenn das passiert ist halt dein Programm malle.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108732</guid><dc:creator><![CDATA[Javaner]]></dc:creator><pubDate>Tue, 01 Aug 2006 17:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt selbst löschen on Tue, 01 Aug 2006 17:25:22 GMT]]></title><description><![CDATA[<p>Schau mal bei Andrei Alexandrescu, Modern C++ Design, Kapitel 6 vorbei. Da findest Du die wesentlichen Policies.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108740</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Tue, 01 Aug 2006 17:25:22 GMT</pubDate></item></channel></rss>