<?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[Gleichheitsoperator bei Vererbung?]]></title><description><![CDATA[<p>Einen schönen Weihnachtsfeiertag wünsche ich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Ich hätte da zwei Fragen:</p>
<p>1.) Wird bei einer Klasse standardmäßig der ==-Operator definiert? Ich habe hier einen Compiler der lässt einen Vergleich von Objekten per &quot;==&quot; nicht zu, deswegen vermute ich, dass man den Operator selbst definieren muss?</p>
<p>2.) Wie sieht die Definition des Operators bei Vererbung aus?</p>
<p>Beispiel:</p>
<p>B erbt von A. Muss ich jetzt den ==-Operator in A und B definieren und in B sieht das dann irgendwie so aus:</p>
<pre><code>class B : public A {
     bool operator==(B&amp; toCmp) {
        if (!A::operator ==(this, toCmp) || var1 != toCmp.var1)
             return false;

        return true;
     }
};
</code></pre>
<p>Bin da gerade überfordert, ein Syntaxbeispiel wäre schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312128/gleichheitsoperator-bei-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 16:18:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312128.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Dec 2012 14:49:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Gleichheitsoperator bei Vererbung? on Tue, 25 Dec 2012 14:49:13 GMT]]></title><description><![CDATA[<p>Einen schönen Weihnachtsfeiertag wünsche ich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Ich hätte da zwei Fragen:</p>
<p>1.) Wird bei einer Klasse standardmäßig der ==-Operator definiert? Ich habe hier einen Compiler der lässt einen Vergleich von Objekten per &quot;==&quot; nicht zu, deswegen vermute ich, dass man den Operator selbst definieren muss?</p>
<p>2.) Wie sieht die Definition des Operators bei Vererbung aus?</p>
<p>Beispiel:</p>
<p>B erbt von A. Muss ich jetzt den ==-Operator in A und B definieren und in B sieht das dann irgendwie so aus:</p>
<pre><code>class B : public A {
     bool operator==(B&amp; toCmp) {
        if (!A::operator ==(this, toCmp) || var1 != toCmp.var1)
             return false;

        return true;
     }
};
</code></pre>
<p>Bin da gerade überfordert, ein Syntaxbeispiel wäre schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2283129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2283129</guid><dc:creator><![CDATA[Hobbit123]]></dc:creator><pubDate>Tue, 25 Dec 2012 14:49:13 GMT</pubDate></item><item><title><![CDATA[Reply to Gleichheitsoperator bei Vererbung? on Tue, 25 Dec 2012 14:57:25 GMT]]></title><description><![CDATA[<p>Hobbit123 schrieb:</p>
<blockquote>
<p>1.) Wird bei einer Klasse standardmäßig der ==-Operator definiert? Ich habe hier einen Compiler der lässt einen Vergleich von Objekten per &quot;==&quot; nicht zu, deswegen vermute ich, dass man den Operator selbst definieren muss?</p>
</blockquote>
<p>Richtig vermutet.</p>
<p>Hobbit123 schrieb:</p>
<blockquote>
<p>2.) Wie sieht die Definition des Operators bei Vererbung aus?</p>
</blockquote>
<p>Schlecht. Es gibt ein paar Tricks, aber im Allgemeinen ist es unmöglich, einen richtig arbeitenden Gleichheitsoperator bei Vererbung zu schreiben.</p>
<p>Hobbit123 schrieb:</p>
<blockquote>
<p>B erbt von A. Muss ich jetzt den ==-Operator in A und B definieren und in B sieht das dann irgendwie so aus:</p>
</blockquote>
<p>Bevor du das tust, musst du dir ein paar Gedanken machen.</p>
<pre><code class="language-cpp">A a;
B b1, b2;
b1 == a // was soll da passieren?
a == b2 // was soll da passieren?
// Problem: wenn b1==a und a==b2 dann muss gelten b1==b2
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2283130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2283130</guid><dc:creator><![CDATA[gleichmacher]]></dc:creator><pubDate>Tue, 25 Dec 2012 14:57:25 GMT</pubDate></item></channel></rss>