<?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[Speicher freigeben bei Exception in Konstruktor]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wenn ich im Programm ein Objekt erstelle mit</p>
<p>CBeispiel *pBeispiel = new CBeispiel();</p>
<p>wird dann der Speicher der durch new für CBeispiel bereitgestellt wurde wieder freigeben, falls im Konstruktor von CBeispiel eine Exception auftritt?<br />
Es geht in dieser Frage NICHT um eventuell im Konstruktor von CBeispiel angelegte Objekte, sondern nur um den Speicher für CBeispiel selbst.</p>
<p>Falls er nicht freigegeben wird, wie könnte ich ihn manuell freigeben? &quot;delete pBeispiel&quot; kann ich ja schlecht aufrufen, weil das ja zum Aufruf des Dekonstruktors von CBeispiel führen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290081/speicher-freigeben-bei-exception-in-konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 11:00:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290081.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Jul 2011 09:56:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicher freigeben bei Exception in Konstruktor on Tue, 19 Jul 2011 09:56:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wenn ich im Programm ein Objekt erstelle mit</p>
<p>CBeispiel *pBeispiel = new CBeispiel();</p>
<p>wird dann der Speicher der durch new für CBeispiel bereitgestellt wurde wieder freigeben, falls im Konstruktor von CBeispiel eine Exception auftritt?<br />
Es geht in dieser Frage NICHT um eventuell im Konstruktor von CBeispiel angelegte Objekte, sondern nur um den Speicher für CBeispiel selbst.</p>
<p>Falls er nicht freigegeben wird, wie könnte ich ihn manuell freigeben? &quot;delete pBeispiel&quot; kann ich ja schlecht aufrufen, weil das ja zum Aufruf des Dekonstruktors von CBeispiel führen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2094724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2094724</guid><dc:creator><![CDATA[Dell]]></dc:creator><pubDate>Tue, 19 Jul 2011 09:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher freigeben bei Exception in Konstruktor on Tue, 19 Jul 2011 10:14:38 GMT]]></title><description><![CDATA[<p>Der Speicher wird garantiert freigegeben. Das gilt aber nur für den Speicher von DIESEM new.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2094740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2094740</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 19 Jul 2011 10:14:38 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher freigeben bei Exception in Konstruktor on Tue, 19 Jul 2011 10:16:12 GMT]]></title><description><![CDATA[<p>Dell schrieb:</p>
<blockquote>
<p>wird dann der Speicher der durch new für CBeispiel bereitgestellt wurde wieder freigeben, falls im Konstruktor von CBeispiel eine Exception auftritt?</p>
</blockquote>
<p>Ja, es wird der Placement-Delete-Operator aufgerufen, der den Speicher freigibt. Der Benutzer kann das alleine schon deshalb nicht, weil das Objekt beim Exception-Fangen nicht mehr im Scope liegt.</p>
<p>P.S.: Destruktor, nicht Dekonstruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2094743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2094743</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 19 Jul 2011 10:16:12 GMT</pubDate></item></channel></rss>