<?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[Abstrakte Destruktoren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte für meine abstrakte Basisklasse auch einen rein virtuellen Destruktor haben:</p>
<pre><code class="language-cpp">virtual ~MeinAbstraktesBasisObjekt() = 0;
</code></pre>
<p>Das findet der Linker nicht in Ordnung:<br />
&quot;undefined reference to MeinAbstraktesBasisObjekt::~MeinAbstraktesBasisObjekt()'&quot;</p>
<p>Ich habe alle abgeleiteten Klassen mit Destruktoren versehen, aber<br />
das hilft offenbar nicht weiter.</p>
<p>Was mach ich falsch? Was kann ich tun?</p>
<p>Danke,<br />
Stimpy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159390/abstrakte-destruktoren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 03:46:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159390.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Sep 2006 14:20:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 14:20:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte für meine abstrakte Basisklasse auch einen rein virtuellen Destruktor haben:</p>
<pre><code class="language-cpp">virtual ~MeinAbstraktesBasisObjekt() = 0;
</code></pre>
<p>Das findet der Linker nicht in Ordnung:<br />
&quot;undefined reference to MeinAbstraktesBasisObjekt::~MeinAbstraktesBasisObjekt()'&quot;</p>
<p>Ich habe alle abgeleiteten Klassen mit Destruktoren versehen, aber<br />
das hilft offenbar nicht weiter.</p>
<p>Was mach ich falsch? Was kann ich tun?</p>
<p>Danke,<br />
Stimpy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137386</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Thu, 14 Sep 2006 14:20:30 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 14:34:57 GMT]]></title><description><![CDATA[<p>afaik dürfen destruktoren nicht pure virtual sein - gib ihm einfach nen leeren körper anstatt ihn auf 0 zu setzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137397</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Thu, 14 Sep 2006 14:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 14:43:48 GMT]]></title><description><![CDATA[<p>Sie dürfen rein virtuell sein, benötigen aber immer einen Definition. Rein virtuelle D'toren machen dann Sinn wenn man eine Abtrakte Klasse möchte aber keine Methoden hat die rein virtuell sein dürfen.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137405</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 14 Sep 2006 14:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 14:59:41 GMT]]></title><description><![CDATA[<p>Also &quot;virtual ~Klasse() = 0;&quot; UND eine Definition mit leerem Körper?<br />
Das klingt etwas widersprüchlich, obwohl es geht.</p>
<blockquote>
<p>wenn man eine Abtrakte Klasse möchte aber keine Methoden hat die rein virtuell sein dürfen</p>
</blockquote>
<p>Nach dem Motto wenn schon sonst keiner abstrakt ist, dann wenigstens der Destruktor? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Meine Idee war eine andere. Ich möchte eine abstrakte Basisklasse, die momentan nur abstrakte Funktionen hat.<br />
Mit dem virtuellen Destruktor möchte ich erzwingen, daß abgeleitete Objekte immer den richtigen Destruktor verwenden<br />
(der eigentliche Sinn von virtuellen Destruktoren). Liege ich damit falsch?</p>
<p>Danke,<br />
Stimpy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137416</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Thu, 14 Sep 2006 14:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:02:48 GMT]]></title><description><![CDATA[<p>Wenn du andere abstrakte Methoden hast, brauchst du den virtuellen Desstructor nicht, da die Klasse sowieso nicht instanziert werden kann, und somit auch kein Destruktor nötig ist.<br />
Lass ihn einfach weg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137419</guid><dc:creator><![CDATA[Helferlein]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:09:46 GMT]]></title><description><![CDATA[<p>Wenn aber jemand anderes von meiner Klasse einiges ableitet und den virt. Destruktor vergißt, könnte ja nur die Hälfte zerstört werden.<br />
Aber stimmt schon, das ist dann eigentlich dann sein Problem...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137430</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:12:29 GMT]]></title><description><![CDATA[<p>Nein, es wird die ganze abgeleitete Klasse zerstört. Die abstrakte Basisklasse wird gar nie erzeugt, sie ist ja abstrakt.<br />
Wenn du &quot;pure virtual&quot; Methoden hast, musst du die in jedem Fall in der abgeleiteten Klasse implementieren.<br />
Ausserdem müssen Methoden nicht zerstört werden, nur Membervariablen <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/1137432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137432</guid><dc:creator><![CDATA[Helferlein]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:28:42 GMT]]></title><description><![CDATA[<p>Helferlein schrieb:</p>
<blockquote>
<p>Wenn du andere abstrakte Methoden hast, brauchst du den virtuellen Desstructor nicht, da die Klasse sowieso nicht instanziert werden kann, und somit auch kein Destruktor nötig ist.<br />
Lass ihn einfach weg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>unsinn. abstrakte klassen treten natürlich als subobjekte auf, und sind als solche dann 'instanziert'. die antwort auf die frage ob virtueller destruktor oder nicht richtet sich einzig und allein danach, ob das betreffende objekt mittels delete auf einen zeiger auf diese abstrakte basisklasse zerstört werden soll, oder nicht (bzw. bei explizitem dtor-aufruf, ob statischer und dynamischer typ verschieden sein können). im übrigen hat <em>jede</em> klasse einen destruktor. wenn man ihn nicht selbst deklariert, macht der compiler das (public, und implementiert ihn auch, sofern die destruktoren der basisklassen/member aufrufbar sind). ein dtor ist virtuell, wenn er so deklariert wird, oder wenn ein dtor einer basisklasse virtuell ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137454</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:28:42 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:26:57 GMT]]></title><description><![CDATA[<p>Ja klar, bei meinem Objekt gibt es nichts aufzuräumen. Nur wenn jemand anderes von meiner Klasse zweimal ableitet und dabei bei der ersten den v.Dest. vergißt, dann könnte es ja sein, daß bei einem Zeiger seines Basisobjekttypes auf ein Obj. seines zweiten Types, bei der Zerstörung nur die Attribute des Basistyps berücksichtigt werden....</p>
<p>Hmmm, zugegeben das klingt mir gerade selber etwas paranoid. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Aber nur weil ich paranoid bin, heißt das noch lange nicht,<br />
daß sie nicht hinter mir her sind...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137456</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:30:25 GMT]]></title><description><![CDATA[<p>Das ist dann sein Problem und hat mit deiner abstrakten Basisklasse überhaupt nichts mehr zu tun (oder ich hab überhaupt nicht verstanden, was du meinst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> )</p>
<p>Geh mal zum Arzt wegen der Paranoia, oder lass das Kiffen ne Weile sein :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137460</guid><dc:creator><![CDATA[Helferlein]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:30:25 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:31:34 GMT]]></title><description><![CDATA[<p>Helferlein schrieb:</p>
<blockquote>
<p>Nein, es wird die ganze abgeleitete Klasse zerstört. Die abstrakte Basisklasse wird gar nie erzeugt, sie ist ja abstrakt.<br />
Wenn du &quot;pure virtual&quot; Methoden hast, musst du die in jedem Fall in der abgeleiteten Klasse implementieren.<br />
Ausserdem müssen Methoden nicht zerstört werden, nur Membervariablen <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>
</blockquote>
<p>Unsinn.</p>
<p>stimpleton schrieb:</p>
<blockquote>
<p>Wenn aber jemand anderes von meiner Klasse einiges ableitet und den virt. Destruktor vergißt, könnte ja nur die Hälfte zerstört werden.<br />
Aber stimmt schon, das ist dann eigentlich dann sein Problem...</p>
</blockquote>
<p>Das würde wegen der Default-Implementation ohnehin nicht funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137462</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 15:43:46 GMT]]></title><description><![CDATA[<p>Ein Zeiger von meinem abstrakten Basistyp auf ein abgeleitetes Objekt, könnte<br />
Probleme machen. Da ohne v.D. die Destruktion des abgeleiteten Typs vergessen würde. Richtig?</p>
<p>Ich kann ja nicht ahnen, wer mit welchen Zeigertypen auf welchen Ableitungen rumhantiert -&gt; v.D. ist doch notwendig.</p>
<p>Aber die Default-Implementation fehlt ja, sonst würde der Linker nicht meckern.<br />
Also gebe ich ihm eine leere Implementation, damit der zufrieden ist.<br />
Damit sind dann alle glücklich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137468</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Thu, 14 Sep 2006 15:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Thu, 14 Sep 2006 16:48:20 GMT]]></title><description><![CDATA[<p>stimpleton schrieb:</p>
<blockquote>
<p>Aber die Default-Implementation fehlt ja, sonst würde der Linker nicht meckern.<br />
Also gebe ich ihm eine leere Implementation, damit der zufrieden ist.<br />
Damit sind dann alle glücklich?</p>
</blockquote>
<p>Du hast mich missverstanden. Ich meinte nicht deine Basisklasse sondern die abgeleiteten Klassen: du kannst niemandem vorschreiben einen Destruktor zu implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137509</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 14 Sep 2006 16:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 06:03:01 GMT]]></title><description><![CDATA[<p>Ok. Aber es bleibt in meiner abstrakten Basisklasse dabei:</p>
<p>- ich deklariere Destruktor als rein virtuell mit &quot;=0&quot;<br />
- ich definiere den Destruktor als leer &quot;{}&quot;</p>
<p>So hatte ich es schon vorher, nur wußte ich nicht, ob das so korrekt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137715</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Fri, 15 Sep 2006 06:03:01 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 06:45:32 GMT]]></title><description><![CDATA[<p>stimpleton schrieb:</p>
<blockquote>
<p>...<br />
- ich deklariere Destruktor als rein virtuell mit &quot;=0&quot;<br />
- ich definiere den Destruktor als leer &quot;{}&quot;<br />
...</p>
</blockquote>
<p>Hmmm, ich hätte auch immer gedacht, dass das eigentlich nicht geht; aber vermutlich habe ich die Bedeutung von &quot;= 0&quot; mißverstanden.</p>
<p>Ich dachte immer, das hieße: &quot;Gibt's keine Definition von.&quot;<br />
Dabei heißt es anscheinend: &quot;Eine abgeleitete Klasse muß das 'overriden'. &quot;</p>
<p>Hmmmm, muß ich nochmal drüber grübeln.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137726</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 15 Sep 2006 06:45:32 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 07:23:30 GMT]]></title><description><![CDATA[<p>das = 0 beim destruktor hat keine auswirkung auf das arbeiten mit der klasse; man kann eine eigene definition bei abgeleiteten klassen ebenso weglassen, als würde = 0 nicht verwendet. es reicht aus virtual zu benutzen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using std::cout;
using std::endl;

class foo1
{
public:
	virtual ~foo1() { cout &lt;&lt; &quot;foo1 destruktor&quot; &lt;&lt; endl; }
};

class foo2
{
public:
	~foo2() { cout &lt;&lt; &quot;foo2 destruktor&quot; &lt;&lt; endl; }
};

class bar1 : public foo1
{
public:
	~bar1() { cout &lt;&lt; &quot;bar1 destruktor&quot; &lt;&lt; endl; }
};

class bar2 : public foo2
{
public:
	~bar2() { cout &lt;&lt; &quot;bar2 destruktor&quot; &lt;&lt; endl; }
};

int main()
{
	foo1 *f1 = new bar1();
	foo2 *f2 = new bar2();

    // da der destruktor von foo1 virtuell ist,
    // wird erst der destruktor von bar1
    // und dann der destruktor von foo1 aufgerufen
	delete f1;

	// der destruktor von foo2 ist nicht virtuell,
    // also wird der destruktor von bar2 nicht aufgerufen,
    // somdern nur der von foo2
	delete f2;

	std::cin.get();
}
</code></pre>
<p>hier noch eine kleine demonstration der sinnlosigkeit von = 0 beim destruktor:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class sinnlos
{
public:
    virtual ~sinnlos() = 0;
};
sinnlos::~sinnlos() {}

class pustekuchen : public sinnlos
{
public:
    pustekuchen() { std::cout &lt;&lt; &quot;pustekuchen&quot; &lt;&lt; std::endl; }
    //um den destruktor braucht man sich, trotz = 0, nicht selbst zu kümmern
};

int main()
{
    pustekuchen p;
    std::cin.get();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1137741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137741</guid><dc:creator><![CDATA[zerstörer]]></dc:creator><pubDate>Fri, 15 Sep 2006 07:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 07:51:47 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Hmmm, ich hätte auch immer gedacht, dass das eigentlich nicht geht; aber vermutlich habe ich die Bedeutung von &quot;= 0&quot; mißverstanden.<br />
Ich dachte immer, das hieße: &quot;Gibt's keine Definition von.&quot;</p>
</blockquote>
<p>Ich empfehle bezüglich dieser Problematik &quot;More exceptional C++&quot; von Herb Sutter<br />
&quot;Item27: (Im)pure virtual Functions&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137754</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 15 Sep 2006 07:51:47 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 07:58:36 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>...<br />
Ich empfehle bezüglich dieser Problematik &quot;More exceptional C++&quot; von Herb Sutter<br />
&quot;Item27: (Im)pure virtual Functions&quot;</p>
</blockquote>
<p>Das ist gerade das einzige aus der Reihe, das ich noch nicht habe ... <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137761</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 15 Sep 2006 07:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:00:43 GMT]]></title><description><![CDATA[<p>zerstörer schrieb:</p>
<blockquote>
<p>das = 0 beim destruktor hat keine auswirkung auf das arbeiten mit der klasse; man kann eine eigene definition bei abgeleiteten klassen ebenso weglassen, als würde = 0 nicht verwendet. es reicht aus virtual zu benutzen</p>
</blockquote>
<p>ich erlaube mir anzumerken, daß der abstakte destruktor die klasse abstrakt macht. versuch doch mal ein sinnlos-objekt anzulegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137762</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:07:45 GMT]]></title><description><![CDATA[<p>Mein Absicht war ja nur in C++ zu sagen:</p>
<p>1.) In der abstrakten Basisklasse gibts keinen Destruktor (Was soll der tun?)<br />
2.) Wenn jemand einen Destruktor braucht, dann muß er virtuell sein.</p>
<p>Ich habe nochmal das dicke Buch vom Herrn Stroustrup gewälzt. Da ist ein Beispiel für eine abstrakte Klasse. Die hat im Header einen leeren virtuellen Destruktor:</p>
<pre><code>virtual ~lval_box() {}
</code></pre>
<p>Das scheint also durchaus die korrekte Vorgehensweise zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137768</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:09:06 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>ich erlaube mir anzumerken, daß der abstakte destruktor die klasse abstrakt macht. versuch doch mal ein sinnlos-objekt anzulegen.</p>
</blockquote>
<p>das ist natürlich richtig; ich habe mich falsch ausgedrückt. für stimpleton macht es halt keinen unterschied, da er ja sowieso abstrakte methoden in der basisklasse hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137771</guid><dc:creator><![CDATA[zerstörer]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:10:32 GMT]]></title><description><![CDATA[<p>Der Großteil des Buches ist auch im Netz zu finden...</p>
<p><a href="http://www.gotw.ca/gotw/031.htm" rel="nofollow">http://www.gotw.ca/gotw/031.htm</a></p>
<p>Das muß ich jetzt selber erstmal lesen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137773</guid><dc:creator><![CDATA[stimpleton]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:10:32 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:12:56 GMT]]></title><description><![CDATA[<p>zerstörer schrieb:</p>
<blockquote>
<p>das ist natürlich richtig; ich habe mich falsch ausgedrückt. für stimpleton macht es halt keinen unterschied, da er ja sowieso abstrakte methoden in der basisklasse hat.</p>
</blockquote>
<p>ok. aber auch daran zweifle ich. kann mir irgendwie nicht vorstellen, daß man einen pur virtuellen destruktor in der unterklasse nicht redefinieren muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137775</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:12:56 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:26:28 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>kann mir irgendwie nicht vorstellen, daß man einen pur virtuellen destruktor in der unterklasse nicht redefinieren muss.</p>
</blockquote>
<p>der default-destruktor reicht offensichtlich aus. der basisklassen-destruktor ist ja in wirklichkeit definiert, so dass abgeleitete klassen ihn aufrufen können, und das &quot;pur virtuell&quot; ist in dem fall nur eine fassade um zu erzwingen, dass die basisklasse abstrakt ist. sehe ich persönlich auch als eine sehr merkwürdige design-technik an, weil man als client (ableiter) nicht sofort weiß, was denn nun konkretisiert werden soll. Da kann man ja konkretisieren, indem man einfach schreibt:</p>
<pre><code class="language-cpp">class konkret : public abstrakt {};
</code></pre>
<p>das kann doch nicht der sinn von abstrakten klassen sein, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137785</guid><dc:creator><![CDATA[zerstörer]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:31:59 GMT]]></title><description><![CDATA[<p>zerstörer schrieb:</p>
<blockquote>
<p>Da kann man ja konkretisieren, indem man einfach schreibt:</p>
<pre><code class="language-cpp">class konkret : public abstrakt {};
</code></pre>
<p>das kann doch nicht der sinn von abstrakten klassen sein, oder?</p>
</blockquote>
<p>unwahrscheinlich.<br />
so, wie man auch nicht schreibt</p>
<pre><code class="language-cpp">int main(){42;}
</code></pre>
<p>aber korrekt kannst doch sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137791</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Destruktoren on Fri, 15 Sep 2006 08:32:49 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>...kann mir irgendwie nicht vorstellen, daß man einen pur virtuellen destruktor in der unterklasse nicht redefinieren muss.</p>
</blockquote>
<p>(nur aus Test: )<br />
Aber das Ergbnis ist dasselbe, ob nun mit &quot;=0&quot; oder ohne: Compiler hat kein Problem und Linker meckert fehlende Funktion an.</p>
<p>So gesehen wäre das &quot;=0&quot; tatsächlich überflüssig.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137792</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 15 Sep 2006 08:32:49 GMT</pubDate></item></channel></rss>