<?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[Kopierkonstruktor und Operator= sollen nur Link erzeugen]]></title><description><![CDATA[<p>Hi, ist es möglich Kopierkonstruktor und den Operator= einer Klasse so zu überladen, dass wenn diese aufgerufen werden, nicht eine neue Instanz der Klasse erstellt wird, sondern lediglich die neu erstellte Klasse einen anderen Namen für die erste darstellt? Vll. wirds im Beispiel verständlicher:</p>
<pre><code class="language-cpp">MyClass A;
A.SomeValue = 3;
MyClass B = A; // oder MyClass B(A);
B.SomeValue = 5;
std::cout &lt;&lt; A.SomeValue; // soll jetzt auch 5 sein und nicht 3
</code></pre>
<p>Wie kann man soetwas realisieren? Am liebsten ohne das ich dann nur noch mit Zeigen auf meine Klassen arbeiten kann. Idealerweise würde der Destruktor dann auch nur einmal aufgerufen werden.</p>
<p>Vielen Dank für Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265548/kopierkonstruktor-und-operator-sollen-nur-link-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 02:41:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265548.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Apr 2010 09:36:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kopierkonstruktor und Operator= sollen nur Link erzeugen on Sun, 25 Apr 2010 09:36:14 GMT]]></title><description><![CDATA[<p>Hi, ist es möglich Kopierkonstruktor und den Operator= einer Klasse so zu überladen, dass wenn diese aufgerufen werden, nicht eine neue Instanz der Klasse erstellt wird, sondern lediglich die neu erstellte Klasse einen anderen Namen für die erste darstellt? Vll. wirds im Beispiel verständlicher:</p>
<pre><code class="language-cpp">MyClass A;
A.SomeValue = 3;
MyClass B = A; // oder MyClass B(A);
B.SomeValue = 5;
std::cout &lt;&lt; A.SomeValue; // soll jetzt auch 5 sein und nicht 3
</code></pre>
<p>Wie kann man soetwas realisieren? Am liebsten ohne das ich dann nur noch mit Zeigen auf meine Klassen arbeiten kann. Idealerweise würde der Destruktor dann auch nur einmal aufgerufen werden.</p>
<p>Vielen Dank für Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887968</guid><dc:creator><![CDATA[x4rd3n]]></dc:creator><pubDate>Sun, 25 Apr 2010 09:36:14 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor und Operator= sollen nur Link erzeugen on Sun, 25 Apr 2010 09:38:34 GMT]]></title><description><![CDATA[<p>Nein. Warum sollte das auf Objektebene geschehen? Für sowas gibt es Referenzen.</p>
<pre><code class="language-cpp">MyClass&amp; B = A;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1887970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887970</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 Apr 2010 09:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor und Operator= sollen nur Link erzeugen on Sun, 25 Apr 2010 09:40:35 GMT]]></title><description><![CDATA[<p>Aber was Du dann baust, SIND Zeiger. Warum sie nicht Zeiger nennen? Auto-Aufräum-Zeiger wurst Du unter dem Suchbegriff &quot;smart pointer&quot; finden.<br />
Wenn Dir Smart Pointers absolut nicht gefallen, nimm vielleicht Java. C# oder VB, dort sind alle Klassenobjekte automagisch so wie Du magst. Ansonsten kannst Du Kopierkonstruktor und Zuweisungsoperator prima mit Pimpl und Cow vergewaltigen, wobei Du Cow einfach wegläßt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887972</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 25 Apr 2010 09:40:35 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor und Operator= sollen nur Link erzeugen on Sun, 25 Apr 2010 09:58:22 GMT]]></title><description><![CDATA[<p>Nunja, das ganze hat den Hintergrund das ich vesuche zu einer Singleton-Klasse lokale verfügbar zu machen.</p>
<pre><code class="language-cpp">MyClass::Instance().A();
MyClass::Instance().B();
MyClass::Instance().C();
</code></pre>
<p>ist mir da zu umständlich, vorallem da durch die viele ::Instance() aufrufe doch garantiert ordentlich overhead erzeugt wird. Soetwas ist mein Ziel:</p>
<pre><code class="language-cpp">MyClass A = MyClass::Instance();
A.A();
A.B();
A.C();
</code></pre>
<p>Gibt es dafür elegante Lösungen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887978</guid><dc:creator><![CDATA[x4rd3n]]></dc:creator><pubDate>Sun, 25 Apr 2010 09:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor und Operator= sollen nur Link erzeugen on Sun, 25 Apr 2010 10:07:39 GMT]]></title><description><![CDATA[<p>x4rd3n schrieb:</p>
<blockquote>
<p>Gibt es dafür elegante Lösungen?</p>
</blockquote>
<p>Würdest du vielleicht nochmals meinen Post lesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887981</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 Apr 2010 10:07:39 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor und Operator= sollen nur Link erzeugen on Sun, 25 Apr 2010 10:08:35 GMT]]></title><description><![CDATA[<p>Die elegantere Lösung wurde bereits genannt: Referenzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887982</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sun, 25 Apr 2010 10:08:35 GMT</pubDate></item></channel></rss>