<?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[[Anfängerfrage] Kopierkonstruktor]]></title><description><![CDATA[<pre><code class="language-cpp">Item foo()
{
  Item x;
  return x;
}

main()
{
  Item x = foo();
}
</code></pre>
<p>Wie wird x (aus der main) initialisiert? Kommt hier der Kopierkonstruktor zum Einsatz oder etwas anderes?</p>
<p>Falls Kopierkonstruktor:</p>
<pre><code class="language-cpp">std::unique_pointer&lt;Item&gt; foo()
{
  return std::unique_pointer&lt;new Item&gt;;
}

main()
{
  std::unique_pointer&lt;Item&gt; p = foo();
}
</code></pre>
<p>WIeso klappt das dann? Ich dachte unique_pointer kann man nicht kopieren ...?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/298734/anfängerfrage-kopierkonstruktor</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 17:03:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298734.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jan 2012 16:21:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Anfängerfrage] Kopierkonstruktor on Thu, 26 Jan 2012 16:21:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Item foo()
{
  Item x;
  return x;
}

main()
{
  Item x = foo();
}
</code></pre>
<p>Wie wird x (aus der main) initialisiert? Kommt hier der Kopierkonstruktor zum Einsatz oder etwas anderes?</p>
<p>Falls Kopierkonstruktor:</p>
<pre><code class="language-cpp">std::unique_pointer&lt;Item&gt; foo()
{
  return std::unique_pointer&lt;new Item&gt;;
}

main()
{
  std::unique_pointer&lt;Item&gt; p = foo();
}
</code></pre>
<p>WIeso klappt das dann? Ich dachte unique_pointer kann man nicht kopieren ...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172974</guid><dc:creator><![CDATA[shisha]]></dc:creator><pubDate>Thu, 26 Jan 2012 16:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfängerfrage] Kopierkonstruktor on Thu, 26 Jan 2012 16:25:49 GMT]]></title><description><![CDATA[<p>Google Move-Konstruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172977</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 26 Jan 2012 16:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfängerfrage] Kopierkonstruktor on Thu, 26 Jan 2012 17:11:08 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Google Move-Konstruktor.</p>
</blockquote>
<p>Kurz-Erkärung: Mit C++11 gibts auch move-Operationen für r-Values. Ohne diese move-Operationen kann man unique_ptr vergessen. Deine zurückgegebenen Items werden gemoved, wenn denn ein move-ctor vorhanden ist. Das ist dann der Fall, wenn du entweder selber einen definierst oder aber weder move- noch copy-Ctor selber definierst (dann werden beide generiert).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172995</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 26 Jan 2012 17:11:08 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfängerfrage] Kopierkonstruktor on Thu, 26 Jan 2012 17:13:53 GMT]]></title><description><![CDATA[<p>Im ersten Bsp. wird je nach Optimierungseinstellung entweder<br />
1. Standardkonstruktor aufgerufen, dann<br />
2. Kopierkonstruktor oder Movekonstruktor falls vorhanden</p>
<p>oder<br />
1. Nur der Standardkonstruktor augerufen</p>
<p>oder<br />
1. garnix passieren</p>
<p>Im zweiten Bsp. wird, da bei unique_ptr vorhanden der Movekonstruktor (vom unique_ptr) aufgerufen, bzw. auch gar nix, da alles wegoptimiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2172997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2172997</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Thu, 26 Jan 2012 17:13:53 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfängerfrage] Kopierkonstruktor on Thu, 26 Jan 2012 17:36:10 GMT]]></title><description><![CDATA[<p>--</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173008</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 26 Jan 2012 17:36:10 GMT</pubDate></item><item><title><![CDATA[Reply to [Anfängerfrage] Kopierkonstruktor on Thu, 26 Jan 2012 17:43:49 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Im ersten Bsp. wird je nach Optimierungseinstellung entweder<br />
1. Standardkonstruktor aufgerufen, dann<br />
2. Kopierkonstruktor oder Movekonstruktor falls vorhanden</p>
<p>oder<br />
1. Nur der Standardkonstruktor augerufen</p>
<p>oder<br />
1. garnix passieren</p>
<p>Im zweiten Bsp. wird, da bei unique_ptr vorhanden der Movekonstruktor (vom unique_ptr) aufgerufen, bzw. auch gar nix, da alles wegoptimiert.</p>
</blockquote>
<p>Der Defaultkonstruktor wird ganz sicher aufgerufen werden (wenn Item eine Klasse ist). Ist der trivial, kann man das aber nat. nicht beobachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2173016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2173016</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 26 Jan 2012 17:43:49 GMT</pubDate></item></channel></rss>