<?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[operator= overloading]]></title><description><![CDATA[<p>Hallo!</p>
<p>ich möchte den = operator überladen. und zwar so:</p>
<pre><code>class B {
  private:
    double d;
  public:
    B(const double d) { this-&gt;d=d }
    double getD() { return d; }
};

double operator=(const double &amp;d, const B &amp;b) {
  return b.getD();
}

int main() {
  B b(4);
  double d=b;

  return d;
}
</code></pre>
<p>bekomme jedoch vom compiler die fehlermedlung:</p>
<pre><code>double operator=(const double&amp;, const B&amp;)« muss eine nichtstatische Elementfunktion sein
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>was mach ich falsch??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146490/operator-overloading</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 16:28:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146490.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 May 2006 12:05:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to operator= overloading on Mon, 08 May 2006 12:05:48 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>ich möchte den = operator überladen. und zwar so:</p>
<pre><code>class B {
  private:
    double d;
  public:
    B(const double d) { this-&gt;d=d }
    double getD() { return d; }
};

double operator=(const double &amp;d, const B &amp;b) {
  return b.getD();
}

int main() {
  B b(4);
  double d=b;

  return d;
}
</code></pre>
<p>bekomme jedoch vom compiler die fehlermedlung:</p>
<pre><code>double operator=(const double&amp;, const B&amp;)« muss eine nichtstatische Elementfunktion sein
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>was mach ich falsch??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053322</guid><dc:creator><![CDATA[sn0b (nicht eingeloggt)]]></dc:creator><pubDate>Mon, 08 May 2006 12:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to operator= overloading on Mon, 08 May 2006 12:12:16 GMT]]></title><description><![CDATA[<p>Was soll dieser Operator erreichen?! Einem konstanten Feld einen Wert aus der Klasse B zuweisen? (Ist schon wegen der ersten Hälfte des letzten Satzes nicht möglich)</p>
<p>Ein Zuweisungsoperator sollte auch das tun, zuweisen. Du gibst nur etwas zurück, was wird das? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ausserdem muss wie der Compiler Dir schon nahelegt operator= eine nichtstatische Elementfunktion (Methode der Klasse) und keine eigenständige Funktion sein.</p>
<pre><code class="language-cpp">class X {
  X&amp; operator=(const X&amp; rechteseite) 
  { 
    this-&gt;irgendwas = rechteseite.irgendwas;
    return *this;
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1053323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053323</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 08 May 2006 12:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to operator= overloading on Mon, 08 May 2006 12:13:01 GMT]]></title><description><![CDATA[<p>Du kannst op= nur als Memberfunktion überladen (das heißt auch, daß zu über diesen Operator nicht IN einen vordefinierten Typ zuweisen kannst). Was du benötigst, wäre eher ein &quot;operator double&quot; in deiner Klasse (der ermöglicht es, dein Objekt in einen double-Wert zu konvertieren):</p>
<pre><code class="language-cpp">class B {
  private:
    double d;
  public:
    B(const double d) { this-&gt;d=d }
    double getD() { return d; }
    operator double() {return d;}
};

int main() {
  B b(4);
  double d=b;

  return d;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1053324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053324</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 08 May 2006 12:13:01 GMT</pubDate></item></channel></rss>