<?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[QT destruktor]]></title><description><![CDATA[<p>als Beispiel nahme ich QDialog:<br />
in Qt(egal welche Version) ist Destruktor von einer Klasse nicht als virtual definiert<br />
hier</p>
<pre><code>~QDialog ();
</code></pre>
<p>dann haben wir problem, wenn wir eigene Klasse von QDialog ableiten</p>
<pre><code>class myDialog : public QDialog
{
}
</code></pre>
<p>in main.cpp</p>
<pre><code>QDialog *d = new myDialog();
delete d;
</code></pre>
<p>zwar Destruktor von QDialog wird aufgerufen, aber Destruktor von MyDialog wird nie aufgerufen, dann haben wir ein Zombie im Speicher.<br />
Ich verstehe nicht, wieso hat trolltech so einen Fehler begangen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135943/qt-destruktor</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 05:20:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135943.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Feb 2006 11:27:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to QT destruktor on Mon, 06 Feb 2006 11:27:16 GMT]]></title><description><![CDATA[<p>als Beispiel nahme ich QDialog:<br />
in Qt(egal welche Version) ist Destruktor von einer Klasse nicht als virtual definiert<br />
hier</p>
<pre><code>~QDialog ();
</code></pre>
<p>dann haben wir problem, wenn wir eigene Klasse von QDialog ableiten</p>
<pre><code>class myDialog : public QDialog
{
}
</code></pre>
<p>in main.cpp</p>
<pre><code>QDialog *d = new myDialog();
delete d;
</code></pre>
<p>zwar Destruktor von QDialog wird aufgerufen, aber Destruktor von MyDialog wird nie aufgerufen, dann haben wir ein Zombie im Speicher.<br />
Ich verstehe nicht, wieso hat trolltech so einen Fehler begangen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/987276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/987276</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Mon, 06 Feb 2006 11:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to QT destruktor on Mon, 06 Feb 2006 11:30:46 GMT]]></title><description><![CDATA[<p>und wenn ich so definiere</p>
<pre><code>myDialog *m = new myDialog();
delete m;
</code></pre>
<p>das Ergebnis ist dasselber.<br />
Es wird 2 mal Konstruktor aufgerufen, 1 für Base Class, 1 für abgeleitete Class<br />
bei</p>
<pre><code>delete m;
</code></pre>
<p>wird obj von der abgeleiteten Class gelöscht, aber was ist mit das Object von Base Class?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/987280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/987280</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Mon, 06 Feb 2006 11:30:46 GMT</pubDate></item><item><title><![CDATA[Reply to QT destruktor on Mon, 06 Feb 2006 12:09:08 GMT]]></title><description><![CDATA[<p>QDialog's Basisklasse ist QObject, dessen Destruktor virtuell ist. Dadurch ist der Destruktor in QDialog ebenfalls virtuell.</p>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/987308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/987308</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Mon, 06 Feb 2006 12:09:08 GMT</pubDate></item><item><title><![CDATA[Reply to QT destruktor on Mon, 06 Feb 2006 12:28:00 GMT]]></title><description><![CDATA[<p>verstehe, danke dir</p>
]]></description><link>https://www.c-plusplus.net/forum/post/987321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/987321</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Mon, 06 Feb 2006 12:28:00 GMT</pubDate></item></channel></rss>