<?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[Zeiger auf Klasse wird nicht korrekt gelöscht]]></title><description><![CDATA[<p>Nabend, folgende Problemstellung</p>
<pre><code class="language-cpp">class B
{
   B(double wert){}//implementation lasse ich aus übersicht weg

  ~B()
   {
      delete this; //kann man das so einfach machen??
   }
};
</code></pre>
<pre><code class="language-cpp">#include &quot;B.h&quot;
//Vererbung zieht hier nicht, da B nicht in der &quot;ist ein&quot; Beziehung zu A steht.
class A
{
  public:
        B *meinB;
  A()
  {
     meinB = new B(1000);
  }
};
</code></pre>
<p>Soo,heißt also wenn ein A erstellt wird,wird automatisch auch ein B erzeugt.Wenn ich jetzt das erstellen und löschen der Objekte mitlogge wird B niemals korrekt abgeräumt? Wo hab ich da ein Denkfehler drinne?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222578/zeiger-auf-klasse-wird-nicht-korrekt-gelöscht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 01:10:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222578.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Sep 2008 18:42:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger auf Klasse wird nicht korrekt gelöscht on Sun, 14 Sep 2008 18:42:00 GMT]]></title><description><![CDATA[<p>Nabend, folgende Problemstellung</p>
<pre><code class="language-cpp">class B
{
   B(double wert){}//implementation lasse ich aus übersicht weg

  ~B()
   {
      delete this; //kann man das so einfach machen??
   }
};
</code></pre>
<pre><code class="language-cpp">#include &quot;B.h&quot;
//Vererbung zieht hier nicht, da B nicht in der &quot;ist ein&quot; Beziehung zu A steht.
class A
{
  public:
        B *meinB;
  A()
  {
     meinB = new B(1000);
  }
};
</code></pre>
<p>Soo,heißt also wenn ein A erstellt wird,wird automatisch auch ein B erzeugt.Wenn ich jetzt das erstellen und löschen der Objekte mitlogge wird B niemals korrekt abgeräumt? Wo hab ich da ein Denkfehler drinne?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581888</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Sun, 14 Sep 2008 18:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Klasse wird nicht korrekt gelöscht on Sun, 14 Sep 2008 18:52:53 GMT]]></title><description><![CDATA[<p>Du kannst das Objekt nicht von sich selber aus zerstören. Das wäre, als ob es tot wäre, bevor es sterben würde. Im Destruktor werden nämlich noch die automatischen Stackvariablen zerstört. Wenn du jetzt schon das Objekt vorher manuell destruierst, kann das zu undefiniertem Verhalten führen.</p>
<p>Vom Design her muss es so sein, dass der Aufrufer, der mit <code>new</code> anfordert, auch wieder für das <code>delete</code> zuständig ist. In diesem Falle kann man diese Aufgabe nicht der Instanz selber abgeben. Was aber gehen würde, wären Smartpointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581891</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Sep 2008 18:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Klasse wird nicht korrekt gelöscht on Sun, 14 Sep 2008 18:53:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>soweit ich weiss ist es &quot;illegal&quot; delete this aufzurufen.<br />
Wenn du delete auf ein Objekt anwendest wird sein destruktor aufgerufen, der wiederum delete aufruft =&gt; Endlosschliefe</p>
<p>Gruss</p>
<p>CrimsonKing</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581892</guid><dc:creator><![CDATA[CrimsonKing]]></dc:creator><pubDate>Sun, 14 Sep 2008 18:53:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Klasse wird nicht korrekt gelöscht on Sun, 14 Sep 2008 18:56:52 GMT]]></title><description><![CDATA[<p>CrimsonKing schrieb:</p>
<blockquote>
<p>Wenn du delete auf ein Objekt anwendest wird sein destruktor aufgerufen, der wiederum delete aufruft =&gt; Endlosschliefe</p>
</blockquote>
<p>Das muss nicht einmal sein, da das Objekt nach <code>delete this;</code> gar nicht mehr existiert -&gt; der Destruktor funktioniert möglicherweise gar nicht mehr.</p>
<p>Aber eben: Von solchen Sachen absehen. Besser, man lässt auch die Finger von manuellen Destruktoraufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1581894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1581894</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Sep 2008 18:56:52 GMT</pubDate></item></channel></rss>