<?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[auto_ptr und get?]]></title><description><![CDATA[<p>Ich hab mir nen guten Artikel über auto_ptr zur Gemüte geführt, habe jedoch noch eine Frage, die sich mir stellt, angekommen, ich habe diesen Code:</p>
<pre><code class="language-cpp">auto_ptr&lt;T&gt; foo(){
 auto_ptr&lt;T&gt; p(new T);
 return p;
}

int main()
{

 T * t =  foo().get();

}
</code></pre>
<p>Was passiert eigentlich? Wieso ist t gültig? in main gibt es doch keine Instanz vom auto_ptr mehr, sehe ich doch richtig? Und müsste der pointer nach der Methode nicht gelöscht werden weil keine auto_ptr instanz mehr existiert? Mit get hat mir auto_ptr doch nicht die ownership übergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225233/auto_ptr-und-get</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 18:09:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225233.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Oct 2008 08:48:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 08:48:31 GMT]]></title><description><![CDATA[<p>Ich hab mir nen guten Artikel über auto_ptr zur Gemüte geführt, habe jedoch noch eine Frage, die sich mir stellt, angekommen, ich habe diesen Code:</p>
<pre><code class="language-cpp">auto_ptr&lt;T&gt; foo(){
 auto_ptr&lt;T&gt; p(new T);
 return p;
}

int main()
{

 T * t =  foo().get();

}
</code></pre>
<p>Was passiert eigentlich? Wieso ist t gültig? in main gibt es doch keine Instanz vom auto_ptr mehr, sehe ich doch richtig? Und müsste der pointer nach der Methode nicht gelöscht werden weil keine auto_ptr instanz mehr existiert? Mit get hat mir auto_ptr doch nicht die ownership übergeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602062</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Tue, 21 Oct 2008 08:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 08:53:42 GMT]]></title><description><![CDATA[<p>Wieso sollte t hier gültig sein. So wie ich das sehe erstellt foo ein temporäres auto_ptr-Objekt dessen internen Zeiger du dann t zuweist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602066</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 21 Oct 2008 08:53:42 GMT</pubDate></item><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 08:55:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">foo().get();
</code></pre>
<ul>
<li></li>
</ul>
<pre><code class="language-cpp">auto_ptr&lt;T&gt; foo()...
</code></pre>
<p>Würde ich mal sagen, dass das ein gültiges Objekt in main hinterlässt..<br />
(Nicht 100% sicher, müsste das mal überprüfen..)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602067</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 21 Oct 2008 08:55:33 GMT</pubDate></item><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 08:57:48 GMT]]></title><description><![CDATA[<p>Das temporäre Objekt, welches in main erzeugt wird und den Besitz des auto_ptr aus foo() übernimmt, wird nach dem Ausdruck zerstört. Damit ist t danach nicht mehr gültig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602069</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 21 Oct 2008 08:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 09:13:03 GMT]]></title><description><![CDATA[<p>Also ich sehe aber den Inhalt des Pointers in Main, wenn ich den Debugger drauf ansetze. Die Frage ist, wo ist der auto_ptr mit dem ownership</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602073</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Tue, 21 Oct 2008 09:13:03 GMT</pubDate></item><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 09:32:39 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>Also ich sehe aber den Inhalt des Pointers in Main</p>
</blockquote>
<p>Undefiniertes Verhalten bedeutet auch nicht, dass Du ihn auf keinen Fall mehr siehst.</p>
<blockquote>
<p>Die Frage ist, wo ist der auto_ptr mit dem ownership</p>
</blockquote>
<p>Zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602089</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 21 Oct 2008 09:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to auto_ptr und get? on Tue, 21 Oct 2008 11:09:04 GMT]]></title><description><![CDATA[<p>Zum Zeitpunkt der Initialisierung von t ist der Zeiger noch gültig und das Objekt lebt - nach Beendigung der Auswertung des Ausdrucks zeigt er aber auf eine Leiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602143</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Tue, 21 Oct 2008 11:09:04 GMT</pubDate></item></channel></rss>