<?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[delete funktioniert nicht?!?]]></title><description><![CDATA[<p>hallo,<br />
also ich hab folgendes problem:</p>
<pre><code class="language-cpp">class base
{
	public:
		virtual int a(){return 0;};
};

class derived : virtual public base
{
	public:
		int a(){return 1;};
};

int main
{
	base *Q = 0;
	Q = new derived();
	std::cout &lt;&lt; Q-&gt;a() &lt;&lt; std::endl; // liefert 1, wie gewollt
	if(Q)
		delete(Q); //hier stürzt das programm dann ab
	return 0;
}
</code></pre>
<p>kann mir jmd erklären warum das nicht funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239346/delete-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 12:34:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239346.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Apr 2009 09:13:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 09:13:36 GMT]]></title><description><![CDATA[<p>hallo,<br />
also ich hab folgendes problem:</p>
<pre><code class="language-cpp">class base
{
	public:
		virtual int a(){return 0;};
};

class derived : virtual public base
{
	public:
		int a(){return 1;};
};

int main
{
	base *Q = 0;
	Q = new derived();
	std::cout &lt;&lt; Q-&gt;a() &lt;&lt; std::endl; // liefert 1, wie gewollt
	if(Q)
		delete(Q); //hier stürzt das programm dann ab
	return 0;
}
</code></pre>
<p>kann mir jmd erklären warum das nicht funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699563</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Wed, 22 Apr 2009 09:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 09:17:21 GMT]]></title><description><![CDATA[<p>Hinter dem Base* pointer liegt ein derived-Objekt. Da Base* aber keinen virtuellen Destruktor hat, wird der Destruktor von derived nicht aufgerufen. polymorphes delete mit nichtvirtuellen Destruktoren erzeugt undefiniertes Verhalten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699564</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 22 Apr 2009 09:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 09:25:48 GMT]]></title><description><![CDATA[<p>also wäre damit abhilfe geschaffen?</p>
<pre><code class="language-cpp">class base
{
	public:
		base(){};
		virtual ~base(){};
		virtual int a(){return 0;};
};

class derived : virtual public base
{
	public:
		derived(){};
		virtual ~derived(){};
		int a(){return 1;};
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1699567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699567</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Wed, 22 Apr 2009 09:25:48 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 11:01:07 GMT]]></title><description><![CDATA[<p>FreakyBKA schrieb:</p>
<blockquote>
<p>also wäre damit abhilfe geschaffen?</p>
</blockquote>
<p>Eine Möglichkeit, diese Frage zu beantworten wäre, den Code durch den Compiler zu jagen und zu schauen obs immernoch abstürzt. Das wäre dann ein praktisches Indiz dafür, dass damit das Problem tatsächlich gelöst ist.</p>
<p>Eine andere Möglichkeit wäre, den Code zu nehmen, den Standard zu nehmen, und fein säuberlich zu beweisen, dass der Code dem Standard entsprechend korrekt ist und das tut was du erwartest. Das wäre dann die theoretische Seite der Angelegenheit.</p>
<p>Es wird dir allerdings beides selbst überlassen, weil du den praktischen Test genausogut selbst ausführen kannst und sich für den theoretischen Beweis niemand die Mühe machen wird.</p>
<p>Hättest du natürlich auch selbst drauf kommen können, deshalb wundert mich die Frage etwas <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/1699608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699608</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 22 Apr 2009 11:01:07 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 16:19:13 GMT]]></title><description><![CDATA[<p>FreakyBKA schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(Q) // unnötig
		delete(Q); //hier stürzt das programm dann ab
	return 0;
}
</code></pre>
</blockquote>
<p>das <code>if(Q)</code> ist nicht nötig, weil delete(0) nicht schadet.<br />
hat mit dem problem nichts zu tun, nur ein allgemeiner hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699771</guid><dc:creator><![CDATA[tippse]]></dc:creator><pubDate>Wed, 22 Apr 2009 16:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 16:23:22 GMT]]></title><description><![CDATA[<p>der leere destruktor in derived ist auch nicht mehr zwingend erforderlich, der in base reicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699772</guid><dc:creator><![CDATA[stimme_aus_dem_off]]></dc:creator><pubDate>Wed, 22 Apr 2009 16:23:22 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 16:23:30 GMT]]></title><description><![CDATA[<p>müsste damit das if überhaupt funktioniert nicht die geschwungenen Klammern da stehen ? also so:</p>
<pre><code class="language-cpp">if(Q){}
</code></pre>
<p>und ich meine es wird auch nix geprüft</p>
<pre><code class="language-cpp">if(Q==jenachvariablentyp)
</code></pre>
<p>oder lieg ich da falsch ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699773</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Wed, 22 Apr 2009 16:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 16:27:29 GMT]]></title><description><![CDATA[<p>Sobald nach dem If nur eine Codezeile folgt welche zu der If gehört sind kein {} nötig</p>
<pre><code class="language-cpp">if(booleanWert)
   std::cout&lt;&lt;&quot;Allet Klar!&quot;&lt;&lt;std::endl;
   std::cout&lt;&lt;&quot;Nichts klar&quot;&lt;&lt;std::endl;
</code></pre>
<p>Hier wird nur die &quot;Allet Klar&quot; zeile ausgeführt wenn das If true liefert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699775</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 22 Apr 2009 16:27:29 GMT</pubDate></item><item><title><![CDATA[Reply to delete funktioniert nicht?!? on Wed, 22 Apr 2009 16:37:34 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>müsste damit das if überhaupt funktioniert nicht die geschwungenen Klammern da stehen ?</p>
</blockquote>
<p>Wie Firefighter es erklärt hat. Man kann es sich vielleicht aber besser so vorstellen:</p>
<pre><code class="language-cpp">if(p) p-&gt;do_something();

// Es wird also alles ausgeführt, wenn p ungleich 0 ist, bis zum nächsten Semikolon.
</code></pre>
<p>Tim06TR schrieb:</p>
<blockquote>
<p>und ich meine es wird auch nix geprüft</p>
</blockquote>
<p>In C++ ist alles ungleich 0 wahr und alles was 0 ist falsch.</p>
<pre><code class="language-cpp">if(p)
{
}

// ist somit das Selbe wie:

if(0 != p)
{
}
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699788</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 22 Apr 2009 16:37:34 GMT</pubDate></item></channel></rss>