<?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[Baseclass call in operator=]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>wir diskutieren gerade über die Frage, wo denn eigentlich im operator= der Aufruf auf die Methode Baseclass::operator=() hinkommt.</p>
<p>Was ist aus Eurer Sicht besser, Variante a:</p>
<pre><code>Derived &amp;
Derived::operator=(const Derived &amp; other){
if(this != &amp;other){
Base::operator=(other);
....
}
return *this;
}
</code></pre>
<p>oder Variante b:</p>
<pre><code>Derived &amp;
Derived::operator=(const Derived &amp; other){
Base::operator=(other);
if(this != &amp;other){
....
}
return *this;
}
</code></pre>
<p>???</p>
<p>Was sind Eure Meinungen und Argumente? Ich finde Variante a besser, da damit keine &quot;halb kopierten Instanzen entstehen&quot;, Kollege ist für b, da man nicht wisse was Base::operator= genau mache.</p>
<p>Gruß und schone einmal Danke für Eure Gedanken.<br />
sven_</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332325/baseclass-call-in-operator</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 03:46:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332325.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Apr 2015 09:51:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Baseclass call in operator= on Wed, 22 Apr 2015 09:51:20 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>wir diskutieren gerade über die Frage, wo denn eigentlich im operator= der Aufruf auf die Methode Baseclass::operator=() hinkommt.</p>
<p>Was ist aus Eurer Sicht besser, Variante a:</p>
<pre><code>Derived &amp;
Derived::operator=(const Derived &amp; other){
if(this != &amp;other){
Base::operator=(other);
....
}
return *this;
}
</code></pre>
<p>oder Variante b:</p>
<pre><code>Derived &amp;
Derived::operator=(const Derived &amp; other){
Base::operator=(other);
if(this != &amp;other){
....
}
return *this;
}
</code></pre>
<p>???</p>
<p>Was sind Eure Meinungen und Argumente? Ich finde Variante a besser, da damit keine &quot;halb kopierten Instanzen entstehen&quot;, Kollege ist für b, da man nicht wisse was Base::operator= genau mache.</p>
<p>Gruß und schone einmal Danke für Eure Gedanken.<br />
sven_</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451182</guid><dc:creator><![CDATA[sven_]]></dc:creator><pubDate>Wed, 22 Apr 2015 09:51:20 GMT</pubDate></item><item><title><![CDATA[Reply to Baseclass call in operator= on Wed, 22 Apr 2015 10:12:21 GMT]]></title><description><![CDATA[<p>Eigentlich weder noch, besser ist das <a href="http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Copy-and-swap" rel="nofollow">Copy-and-swap idiom</a></p>
<p>Eine genauere Erklärung gibt es z.B. auch unter <a href="http://stackoverflow.com/questions/25973103/copy-swap-in-base-and-derived-class" rel="nofollow">copy &amp; swap in base and derived class</a>.</p>
<p>Die Selbstzuweisung (wenn die Abfrage überhaupt vorgenommen werden sollte) würde ich dann auch eher mit Variante A implementieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451184</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 22 Apr 2015 10:12:21 GMT</pubDate></item><item><title><![CDATA[Reply to Baseclass call in operator= on Wed, 22 Apr 2015 11:29:12 GMT]]></title><description><![CDATA[<p>Wenn du <code>Base::operator[]</code> aufrufen musst, dann solltest du dir sowieso überlegen was du da eigentlich implementierst.</p>
<p>Und was das Argument deines Kollegen angeht: bitte ihn mal ein Beispiel zu nennen, wo es sinnvoll und OK wäre, eine <code>operator =</code> Funktion auf Selbstzuweisung mit etwas anderem als &quot;no effect&quot; reagieren zu lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2451192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2451192</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 22 Apr 2015 11:29:12 GMT</pubDate></item></channel></rss>