<?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[temporäre shared_ptr, wann wirds gelöscht?]]></title><description><![CDATA[<p>hallo,</p>
<p>wenn ein shared_ptr als Variable nicht mehr existiert und dann dereferenziert wird, wird das Objekt dann noch vor dem Aufruf gelöscht bzw. kann dies passieren? z.B.</p>
<pre><code class="language-cpp">shared_ptr(new bar())-&gt;foo();
</code></pre>
<p>der -&gt; Operator gibt ja erstmal nur einen Pointer zurück, sodass dann doch kein shared_ptr Objekt mehr existieren sollte, sodass das Objekt dann gelöscht wird und foo() mit undefined behaviour aufgerufen wird, das ist zumindest mein Verständnis. Seh ich das richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272086/temporäre-shared_ptr-wann-wirds-gelöscht</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 02:31:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272086.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Aug 2010 09:41:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to temporäre shared_ptr, wann wirds gelöscht? on Tue, 10 Aug 2010 09:41:21 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>wenn ein shared_ptr als Variable nicht mehr existiert und dann dereferenziert wird, wird das Objekt dann noch vor dem Aufruf gelöscht bzw. kann dies passieren? z.B.</p>
<pre><code class="language-cpp">shared_ptr(new bar())-&gt;foo();
</code></pre>
<p>der -&gt; Operator gibt ja erstmal nur einen Pointer zurück, sodass dann doch kein shared_ptr Objekt mehr existieren sollte, sodass das Objekt dann gelöscht wird und foo() mit undefined behaviour aufgerufen wird, das ist zumindest mein Verständnis. Seh ich das richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1938209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1938209</guid><dc:creator><![CDATA[.yeanno]]></dc:creator><pubDate>Tue, 10 Aug 2010 09:41:21 GMT</pubDate></item><item><title><![CDATA[Reply to temporäre shared_ptr, wann wirds gelöscht? on Tue, 10 Aug 2010 09:44:08 GMT]]></title><description><![CDATA[<p>.yeanno schrieb:</p>
<blockquote>
<p>Seh ich das richtig?</p>
</blockquote>
<p>Nein. Das temporäre shared_ptr Objekt existiert bis der komplette Ausdruck bis zum semikolon abgearbeitet wurde. Also auch der foo-Aufruf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1938211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1938211</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 10 Aug 2010 09:44:08 GMT</pubDate></item><item><title><![CDATA[Reply to temporäre shared_ptr, wann wirds gelöscht? on Tue, 10 Aug 2010 10:12:22 GMT]]></title><description><![CDATA[<p>okay, eine etwas kompliziertere Situation:<br />
ein vector hält shared_ptrs, auf eines der enthaltenen Objekte wird dann eine Funktion aufgerufen, die eine Referenz auf den Container nimmt und sich selbst raus löscht. Da vector mit dem Indexoperator dann eine Referenz zurückgibt und das Objekt aus dem vector gelöscht wurde, wird der shared_ptr dann während dem Ausführen der Funktion noch gelöscht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1938227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1938227</guid><dc:creator><![CDATA[.yeanno]]></dc:creator><pubDate>Tue, 10 Aug 2010 10:12:22 GMT</pubDate></item></channel></rss>