<?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[Braucht jede Klasse einen Destructer?]]></title><description><![CDATA[<p>Meine Frage: Braucht eigentlich jede Klasse einen Destructer? Ich rufe einige funktionen auf und als ich damals noch einen destructer hatte wure er auch mit aufgerufen was ich nicht mochte.<br />
Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
<p>Hier meine dateien:</p>
<p>main.cpp</p>
<pre><code>int main(int argc, char* argv[])
{
getServer().send(&quot;Hey&quot;);
}
</code></pre>
<p>server.cpp</p>
<pre><code>Server::Server()
{
Constructer
}

Server getServer()
{
    Server cServer;
    return cServer;
}

void Server::send(std::string message)
{
LOG(&quot;AUFRUF DER FUNKTION send&quot;);
}

Server::~Server()
{
    LOG(&quot;MEIN DESTRUCTER WURDE AUFGERUFEN OBWOHL ICH NUR DIE FUNKTION LOG AUFRUFEN WOLLTE&quot;); //LOG(); //Wurde in einer anderen klasse defeniert
}
</code></pre>
<p>server.h:</p>
<pre><code>#pragma once

class Server
{
public:

void send(std::string message);
};

extern Server getServer();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/330660/braucht-jede-klasse-einen-destructer</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 22:50:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330660.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Jan 2015 21:26:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:26:42 GMT]]></title><description><![CDATA[<p>Meine Frage: Braucht eigentlich jede Klasse einen Destructer? Ich rufe einige funktionen auf und als ich damals noch einen destructer hatte wure er auch mit aufgerufen was ich nicht mochte.<br />
Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
<p>Hier meine dateien:</p>
<p>main.cpp</p>
<pre><code>int main(int argc, char* argv[])
{
getServer().send(&quot;Hey&quot;);
}
</code></pre>
<p>server.cpp</p>
<pre><code>Server::Server()
{
Constructer
}

Server getServer()
{
    Server cServer;
    return cServer;
}

void Server::send(std::string message)
{
LOG(&quot;AUFRUF DER FUNKTION send&quot;);
}

Server::~Server()
{
    LOG(&quot;MEIN DESTRUCTER WURDE AUFGERUFEN OBWOHL ICH NUR DIE FUNKTION LOG AUFRUFEN WOLLTE&quot;); //LOG(); //Wurde in einer anderen klasse defeniert
}
</code></pre>
<p>server.h:</p>
<pre><code>#pragma once

class Server
{
public:

void send(std::string message);
};

extern Server getServer();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2438702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438702</guid><dc:creator><![CDATA[Redthoobe]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:26:42 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:29:39 GMT]]></title><description><![CDATA[<p>Sobald du ein Objekt erstellst, wird der Destruktor aufgerufen.<br />
Das willst du nicht verhindern, so funktioniert C++ und das macht die Sprache so mächtig. Wenn du nicht willst, dass da Code ausgeführt wird: Schreib da keinen Code rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438704</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:34:21 GMT]]></title><description><![CDATA[<p>Redthoobe schrieb:</p>
<blockquote>
<p>Meine Frage: Braucht eigentlich jede Klasse einen Destruktor?</p>
</blockquote>
<p>Nein.</p>
<p>Nathan schrieb:</p>
<blockquote>
<p>Sobald eine automatische Variable die eine Klasseninstanz ist ihren Gültigkeitsbereich verlässt, wird der Destruktor aufgerufen.</p>
</blockquote>
<p>ftfy.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438707</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:34:21 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:39:32 GMT]]></title><description><![CDATA[<p>Redthoobe schrieb:</p>
<blockquote>
<p>Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
</blockquote>
<p>Du kannst das Objekt auf dem Heap (also per new) erstellen, aber nie löschen (sprich kein delete aufrufen). Die Nachteile werden dir aber gleich an den Kopf geworfen <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>Dann kannst du dir mal das Singleton Pattern anschauen.</p>
<p>Und, was eigentlich eien Implementierung des Singletons wäre, du kannst in deiner getServer Funktion den cServer statisch machen, dann lebt der länger und der Destruktor wird nicht sofort wieder aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438709</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:45:56 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Sobald eine automatische Variable die eine Klasseninstanz ist ihren Gültigkeitsbereich verlässt, wird der Destruktor aufgerufen.</p>
</blockquote>
<p>ftfy.</p>
</blockquote>
<p>Ist nicht wahr für Klassen mit trivialem Destrukt<strong>e</strong>r. Und bei Arrays wird je nach dem auch elementweise der Destruktor aufgerufen.</p>
<p>Ich empfehle placement new:</p>
<pre><code class="language-cpp">char *data = reinterpret_cast&lt;char*&gt;(malloc(1000)); // einfach eine genügend grosse Zahl wählen
Server *psanccServer = new (&amp;data) Server; // Der Nachteil von der von Skym0sh0  vorgeschlagenen Variante ist,
                    // dass der Heap langsam ist.  Hier ist die Variable aber auf dem Stack und daher gibt es maximalen Speed.
                    // psanccServer = pointer to stack-allocated non-const class Server
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2438712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438712</guid><dc:creator><![CDATA[taxospiesso]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:47:36 GMT]]></title><description><![CDATA[<p>troll dich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438713</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:58:28 GMT]]></title><description><![CDATA[<p>Mensch Leute! Ihr verwirrt den armen Fragesteller wahrscheinlich nur mit euren Spitzfindigkeiten. Das ist zwar <s>alles</s> teilweise (das mit dem placement-new ist Bullshit und grob fahrlässig so etwas einem Anfänger zu erzählen!) richtig (und es ist wichtig, dass man das irgendwann auch mal alles versteht!), aber wahrscheinlich braucht er gerade nur eine einfache und klare Antwort:</p>
<p>Nein, du kannst den Destruktor auch weglassen, dann erstellt der Compiler für dich hinter den Kulissen einen leeren Destruktor (wo kein Code drin steht) <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>Finnegan</p>
<p><em>2. Edit: Tickt ihr eigentlich noch ganz sauber hier? Wie wäre es stattdessen einfach mal die Frage auf einem Niveau zu beantworten, das der Frage gerecht wird und vielleicht in einem Postscriptum auf ein paar Feinheiten aufmerksam zu machen? So wie das hier gerade aussieht, kann man dem Fragesteller auch gleich ein Buch von Jürgen Wolf empfehlen - das angesichts dieses Threads wohl weniger Schaden anrichten dürfte</em> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438714</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:58:28 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 21:50:04 GMT]]></title><description><![CDATA[<p>taxospiesso schrieb:</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Sobald eine automatische Variable die eine Klasseninstanz ist ihren Gültigkeitsbereich verlässt, wird der Destruktor aufgerufen.</p>
</blockquote>
<p>ftfy.</p>
</blockquote>
<p>Ist nicht wahr für Klassen mit trivialem Destrukt<strong>e</strong>r. Und bei Arrays wird je nach dem auch elementweise der Destruktor aufgerufen.</p>
<p>Ich empfehle placement new:</p>
<pre><code class="language-cpp">char *data = reinterpret_cast&lt;char*&gt;(malloc(1000)); // einfach eine genügend grosse Zahl wählen
Server *psanccServer = new (&amp;data) Server; // Der Nachteil von der von Skym0sh0  vorgeschlagenen Variante ist,
                    // dass der Heap langsam ist.  Hier ist die Variable aber auf dem Stack und daher gibt es maximalen Speed.
                    // psanccServer = pointer to stack-allocated non-const class Server
</code></pre>
</blockquote>
<p>Hä?</p>
<p>Erstens, bei einer einmaligen Allokierung und Initialisierung ist die Laufzeit gewöhnlich egal, weils eben nur einmal passiert.</p>
<p>Zweitens, sagen,d ass der Heap zu langsam ist, aber dann malloc (was ja auch nur den heap anspricht) aufrufen ist etwas von Poppelmoral geprägt.</p>
<p>Und drittens wirft ein Placement-new Probleme auf, wenn du den Speicher von lokalen Variablen nutzt, was deiner AUssage nach, <em>maximalen</em> Speed gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438715</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 20 Jan 2015 21:50:04 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 22:12:11 GMT]]></title><description><![CDATA[<p>Redthoobe schrieb:</p>
<blockquote>
<p>Meine Frage: Braucht eigentlich jede Klasse einen Destructer? Ich rufe einige funktionen auf und als ich damals noch einen destructer hatte wure er auch mit aufgerufen was ich nicht mochte.<br />
Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
</blockquote>
<p>Jede Klasse hat einen Destruktor, wenn Du ihn nicht schreibst, schreibt der Compiler einen für Dich und in einigen Fällen macht der überhaupt nichts.</p>
<p>In Deinem Fall wird ein Destruktor aufgerufen, weil Du ein Objekt kopierst (getServer()). Wenn Du verhindern möchtest, dass der Destruktor aufgerufen wird, solltest Du keine Server per value herum reichen:</p>
<pre><code>int main(int argc, char* argv[])
{
    Server s;
    s.send(&quot;Hey&quot;);
}
</code></pre>
<p>mfg Torsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438716</guid><dc:creator><![CDATA[Torsten Robitzki]]></dc:creator><pubDate>Tue, 20 Jan 2015 22:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 01:14:54 GMT]]></title><description><![CDATA[<p>Redthoobe schrieb:</p>
<blockquote>
<p>Meine Frage: Braucht eigentlich jede Klasse einen Destructer? Ich rufe einige funktionen auf und als ich damals noch einen destructer hatte wure er auch mit aufgerufen was ich nicht mochte.<br />
Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
</blockquote>
<p>Jede Klasse <em>hat</em> automatisch einen Destruktor (EDIT: Ausser wenn sie eben keinen hat. Siehe <a href="https://www.c-plusplus.net/forum/p2438751#2438751">dahier</a> /EDIT). Wenn du keinen schreibst, dann erzeugt der Compiler einen für dich.<br />
Und er wird vom Compiler auch automatisch aufgerufen.</p>
<p>Gegenfrage: <em>Warum</em> willst du dass der Destruktor nicht aufgerufen wird?</p>
<p>Es gibt nämlich ganz sicher eine Lösung dafür was du versuchst zu machen, nur ist die ganz sicher nicht den Destruktor nicht aufzurufen. (Bzw. möglicherweise doch, aber nur wenn du gleich gar kein Objekt erzeugst.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438719</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 21 Jan 2015 01:14:54 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 22:28:35 GMT]]></title><description><![CDATA[<p>Torsten Robitzki schrieb:</p>
<blockquote>
<p>In Deinem Fall wird ein Destruktor aufgerufen, weil Du ein Objekt kopierst (getServer()). [...]</p>
</blockquote>
<p>Nope. Da wird dank RVO nix kopiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438725</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 20 Jan 2015 22:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 22:28:35 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Redthoobe schrieb:</p>
<blockquote>
<p>Meine Frage: Braucht eigentlich jede Klasse einen Destructer? Ich rufe einige funktionen auf und als ich damals noch einen destructer hatte wure er auch mit aufgerufen was ich nicht mochte.<br />
Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
</blockquote>
<p>Jede Klasse <em>hat</em> automatisch einen Destruktor. Wenn du keinen schreibst, dann erzeugt der Compiler einen für dich.</p>
</blockquote>
<p>Aber nur, wenn er auch gebraucht wird, um mal wieder zu den Spitzfindigkeiten zurück zu kehren <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/2438726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438726</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Jan 2015 22:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 22:43:15 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Torsten Robitzki schrieb:</p>
<blockquote>
<p>In Deinem Fall wird ein Destruktor aufgerufen, weil Du ein Objekt kopierst (getServer()). [...]</p>
</blockquote>
<p>Nope. Da wird dank RVO nix kopiert.</p>
</blockquote>
<p>Und war der Hinweis auf eine möglicherweise vom Compiler, optional durchgeführte Optimierung jetzt hilfreich für den OP? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438733</guid><dc:creator><![CDATA[Torsten Robitzki]]></dc:creator><pubDate>Tue, 20 Jan 2015 22:43:15 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 22:45:49 GMT]]></title><description><![CDATA[<p>Der Punkt ist, daß wegen der (Nicht-)Kopie nix zerstört wird, aber am ende der <code>main()</code> totsicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438734</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 20 Jan 2015 22:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 22:51:12 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>totsicher</p>
</blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>zurück zu kehren</p>
</blockquote>
<p>Bitte etwas auf Rechtschreibung achten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438738</guid><dc:creator><![CDATA[grammarnazi]]></dc:creator><pubDate>Tue, 20 Jan 2015 22:51:12 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Tue, 20 Jan 2015 23:15:13 GMT]]></title><description><![CDATA[<p>Torsten Robitzki schrieb:</p>
<blockquote>
<p>Und war der Hinweis auf eine möglicherweise vom Compiler, optional durchgeführte Optimierung jetzt hilfreich für den OP? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Wie ich anfangs schon erwähnt habe. Dieser Thread ist in eine Katastrophe ausgeartet mit jeder Menge (teilweise sogar auch falschen) Informatioen, die für den Fragesteller zum jetztigen Zeitpunkt (die Frage lässt auf einen Einsteiger schließen) absolut unnötiger Ballast sind. Das kommt einem hier ein wenig so vor also ob sich hier die ganzen Experten wie die Geier auf eine Anfängerfrage stürzen und alle zeigen wollen dass sie den längsten ...<br />
(... Absatz aus dem C++Standard auswendig aufsagen können)</p>
<p>herb Sutter hat das mal (wenn auch in einem anderen Kontext) schön auf den Punkt gebracht:<br />
&quot;It's hard to <s>be</s> <em>remember that you are</em> an expert.&quot;</p>
<p>Es reicht erstmal wirklich aus zu wissen, dass man keinen Destruktor schreiben <strong>muss</strong> und dass das dann dasselbe ist als hätte man einen Destruktor mit leerem Funktionskörper geschrieben (tu (quasi) nix!).</p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438740</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Tue, 20 Jan 2015 23:15:13 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 00:57:31 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Redthoobe schrieb:</p>
<blockquote>
<p>Meine Frage: Braucht eigentlich jede Klasse einen Destructer? Ich rufe einige funktionen auf und als ich damals noch einen destructer hatte wure er auch mit aufgerufen was ich nicht mochte.<br />
Wisst ihr wie ich das verhindere das der Destructer mit aufgerufen wird?</p>
</blockquote>
<p>Jede Klasse <em>hat</em> automatisch einen Destruktor. Wenn du keinen schreibst, dann erzeugt der Compiler einen für dich.</p>
</blockquote>
<p>Aber nur, wenn er auch gebraucht wird, um mal wieder zu den Spitzfindigkeiten zurück zu kehren <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>Hmmmmmmm *nachdenk*.<br />
OK, Mist!</p>
<p>Also du meinst Klassen deren Dtor weder userdefiniert ist, noch irgendwo benötigt wird. OK, ja, die haben dann keinen. Und sie müssen nichtmal einen haben können wenn ich genauer drüber nachdenke. Sie könnten ja ne Basisklasse mit nem privaten Dtor haben -- dann würde der Compiler beim Versuch den impliziten Dtor zu generieren Zahnräder spucken.</p>
<p>Oder hast du was anderes gemeint?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438750</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 21 Jan 2015 00:57:31 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 01:09:54 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Also du meinst Klassen deren Dtor weder userdefiniert ist, noch irgendwo benötigt wird. OK, ja, die haben dann keinen. Und sie müssen nichtmal einen haben können wenn ich genauer drüber nachdenke. Sie könnten ja ne Basisklasse mit nem privaten Dtor haben -- dann würde der Compiler beim Versuch den impliziten Dtor zu generieren Zahnräder spucken.</p>
<p>Oder hast du was anderes gemeint?</p>
</blockquote>
<p>Genau die 2 Fälle meinte ich. Und noch den 2.5ten Fall, dass man den Destruktor explizit deleted.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438751</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 21 Jan 2015 01:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 02:23:34 GMT]]></title><description><![CDATA[<p>Ach... scheiss drauf. Wenn der Thread eh schon im Arsch is <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>SeppJ schrieb:</p>
<blockquote>
<p>Und noch den 2.5ten Fall, dass man den Destruktor explizit deleted.</p>
</blockquote>
<p>... mach ich eigentlich immer so, seitdem hab ich kein Problem mehr mit Dangling Pointers! :p</p>
<pre><code>struct Dindong {
   ~Dindong () = delete;
}
</code></pre>
<p>... habe sogar einen Smart Pointer dafür geschrieben, <code>immortal_ptr</code> , der in seinem Destruktor explizit kein <code>delete</code> macht, ist sicherer so, weil man es sonst vergisst und eventuell den Pointer deleted.<br />
Es gibt sogar eine Utility-Funktion <code>make_immortal</code> , die den Pointer auch dann nicht deleted, wenn eine Exception geworfen wird... sicher ist sicher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438755</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Wed, 21 Jan 2015 02:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 08:22:01 GMT]]></title><description><![CDATA[<p>Finnegan schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Und noch den 2.5ten Fall, dass man den Destruktor explizit deleted.</p>
</blockquote>
<p>... mach ich eigentlich immer so, seitdem hab ich kein Problem mehr mit Dangling Pointers! :p</p>
<pre><code>struct Dindong {
   ~Dindong () = delete;
}
</code></pre>
</blockquote>
<p>Ich steh gerade auf dem Schlauch, in welchem Anwendungsfall sollte man einen DTOR deleten wollen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438768</guid><dc:creator><![CDATA[Ruvi]]></dc:creator><pubDate>Wed, 21 Jan 2015 08:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 09:18:10 GMT]]></title><description><![CDATA[<p>Wüsste ich auch nicht, es sei denn man deleted den Default-Ctor gleich mit. Der Unterschied zu nem Namespace wäre dann immerhin noch dass man die Klasse z.B. als &quot;Funktionssammlung&quot; an ein Template übergeben könnte.</p>
<p>Dass das ein Scherz von Finnegan war ist die aber klar, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438775</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 21 Jan 2015 09:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to Braucht jede Klasse einen Destructer? on Wed, 21 Jan 2015 09:34:08 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass das ein Scherz von Finnegan war ist die aber klar, oder?</p>
</blockquote>
<p>Hmpf, es sieht so aus als ob mein Ironie/Sarkasmus/Bullshit Detektor Anfragen erst ab 13.00 Uhr bearbeitet und auch nur dann, wenn der Koffeinspiegel ein akzeptables Niveau erreicht hat.</p>
<p>Also Danke für den Hinweis. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2438779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2438779</guid><dc:creator><![CDATA[Ruvi]]></dc:creator><pubDate>Wed, 21 Jan 2015 09:34:08 GMT</pubDate></item></channel></rss>