<?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[Kopie trotz Refrenz]]></title><description><![CDATA[<p>Warum kann der Compiler hier die nötigen Sachen für eine Kopie generieren?</p>
<pre><code>class NoCopy
{
public:
	NoCopy(int &amp;ref)
		: var(ref)
	{

	}

private:
	//NoCopy(const NoCopy&amp;);
	//void operator=(const NoCopy&amp;);

	int &amp;var;
};

int main()
{
	int x = 3;

	NoCopy np(x);
	auto cp = np;
}
</code></pre>
<p>Ich dachte mit der Referenz würde es implizit nicht gehen, weil sowas geniert werden müsste:</p>
<pre><code>NoCopy(const NoCopy &amp;other)
{
	var = other.var;
}
</code></pre>
<p>Laut generiertem Assemblercode kopiert er aber einfach var.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323096/kopie-trotz-refrenz</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 10:24:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323096.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Jan 2014 20:28:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kopie trotz Refrenz on Fri, 17 Jan 2014 20:28:38 GMT]]></title><description><![CDATA[<p>Warum kann der Compiler hier die nötigen Sachen für eine Kopie generieren?</p>
<pre><code>class NoCopy
{
public:
	NoCopy(int &amp;ref)
		: var(ref)
	{

	}

private:
	//NoCopy(const NoCopy&amp;);
	//void operator=(const NoCopy&amp;);

	int &amp;var;
};

int main()
{
	int x = 3;

	NoCopy np(x);
	auto cp = np;
}
</code></pre>
<p>Ich dachte mit der Referenz würde es implizit nicht gehen, weil sowas geniert werden müsste:</p>
<pre><code>NoCopy(const NoCopy &amp;other)
{
	var = other.var;
}
</code></pre>
<p>Laut generiertem Assemblercode kopiert er aber einfach var.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377940</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Fri, 17 Jan 2014 20:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kopie trotz Refrenz on Fri, 17 Jan 2014 21:05:40 GMT]]></title><description><![CDATA[<p>KN4CK3R schrieb:</p>
<blockquote>
<p>Ich dachte mit der Referenz würde es implizit nicht gehen, weil sowas geniert werden müsste:</p>
<pre><code>NoCopy(const NoCopy &amp;other)
{
	var = other.var;
}
</code></pre>
<p>Laut generiertem Assemblercode kopiert er aber einfach var.</p>
</blockquote>
<p>Ja, das geht ja auch, da folgender Code erzeugt wird:</p>
<pre><code>NoCopy(const NoCopy &amp;other)
: var(other.var)
{
}
</code></pre>
<p>Was vollkommen legal ist.<br />
Problematisch wirds nur mit operator=.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377941</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 17 Jan 2014 21:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to Kopie trotz Refrenz on Fri, 17 Jan 2014 21:10:36 GMT]]></title><description><![CDATA[<p>Ok, ich dachte auch beim Kopierkonstruktor würde der Compiler ein Problem sehen. Danke dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2377942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2377942</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Fri, 17 Jan 2014 21:10:36 GMT</pubDate></item></channel></rss>