<?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 überladen]]></title><description><![CDATA[<p>Hi <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="🙂"
    /></p>
<p>Ich hätte noch eine Frage zum Überladen vom += Operator.</p>
<p>Da habe ich folgendes Programm dazu:</p>
<p>automat.h:</p>
<pre><code>#ifndef _AUTOMAT_H_
#define _AUTOMAT_H_
#include &quot;automat.h&quot;

class Automat {
  private:
    unsigned long geld = 0;

  public:
    unsigned long operator+=(unsigned long);
    unsigned long get_geld() const;
};

#endif
</code></pre>
<p>automat.cpp:</p>
<pre><code>#include &quot;automat.h&quot;

unsigned long Automat::operator+=(unsigned long g) {
  return (geld += g);
}
unsigned long Automat::get_geld() const {
  return geld;
}
</code></pre>
<p>main.cpp:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;automat.h&quot;
using namespace std;

int main(void) {

  Automat data01;
  data01+=100;
  cout &lt;&lt; data01.get_geld() &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>Bei diesem Programm kam mir etwas seltsam vor. Dass die += Methode nämlich etwas zurückliefert. Wenn man sich das Hauptprogramm anschaut, sieht man, dass da nichts zurückgegeben wird.</p>
<p>Darum habe ich automat.h und automat.cpp etwas umgeschrieben (und main.cpp unverändert belassen).</p>
<p>automat.h:</p>
<pre><code>#ifndef _AUTOMAT_H_
#define _AUTOMAT_H_
#include &quot;automat.h&quot;

class Automat {
  private:
    unsigned long geld = 0;

  public:
    void operator+=(unsigned long); // jetzt void
    unsigned long get_geld() const;
};

#endif
</code></pre>
<p>automat.cpp:</p>
<pre><code>#include &quot;automat.h&quot;

void Automat::operator+=(unsigned long g) {
  geld += g;
}
unsigned long Automat::get_geld() const {
  return geld;
}
</code></pre>
<p>Und siehe da, es funktioniert genau so.</p>
<p>Ist das wirklich nötigt, dass die += Methode einen return hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323686/operator-überladen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 21:12:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323686.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Feb 2014 18:52:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 18:52:13 GMT]]></title><description><![CDATA[<p>Hi <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="🙂"
    /></p>
<p>Ich hätte noch eine Frage zum Überladen vom += Operator.</p>
<p>Da habe ich folgendes Programm dazu:</p>
<p>automat.h:</p>
<pre><code>#ifndef _AUTOMAT_H_
#define _AUTOMAT_H_
#include &quot;automat.h&quot;

class Automat {
  private:
    unsigned long geld = 0;

  public:
    unsigned long operator+=(unsigned long);
    unsigned long get_geld() const;
};

#endif
</code></pre>
<p>automat.cpp:</p>
<pre><code>#include &quot;automat.h&quot;

unsigned long Automat::operator+=(unsigned long g) {
  return (geld += g);
}
unsigned long Automat::get_geld() const {
  return geld;
}
</code></pre>
<p>main.cpp:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;automat.h&quot;
using namespace std;

int main(void) {

  Automat data01;
  data01+=100;
  cout &lt;&lt; data01.get_geld() &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>Bei diesem Programm kam mir etwas seltsam vor. Dass die += Methode nämlich etwas zurückliefert. Wenn man sich das Hauptprogramm anschaut, sieht man, dass da nichts zurückgegeben wird.</p>
<p>Darum habe ich automat.h und automat.cpp etwas umgeschrieben (und main.cpp unverändert belassen).</p>
<p>automat.h:</p>
<pre><code>#ifndef _AUTOMAT_H_
#define _AUTOMAT_H_
#include &quot;automat.h&quot;

class Automat {
  private:
    unsigned long geld = 0;

  public:
    void operator+=(unsigned long); // jetzt void
    unsigned long get_geld() const;
};

#endif
</code></pre>
<p>automat.cpp:</p>
<pre><code>#include &quot;automat.h&quot;

void Automat::operator+=(unsigned long g) {
  geld += g;
}
unsigned long Automat::get_geld() const {
  return geld;
}
</code></pre>
<p>Und siehe da, es funktioniert genau so.</p>
<p>Ist das wirklich nötigt, dass die += Methode einen return hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382574</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Mon, 10 Feb 2014 18:52:13 GMT</pubDate></item><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 18:55:46 GMT]]></title><description><![CDATA[<p>Rueckgabewerte koennen ignoriert werden &amp; die Methode muss nichts zurueckgeben. Die Antwort lautet also: Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382577</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 10 Feb 2014 18:55:46 GMT</pubDate></item><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 18:56:38 GMT]]></title><description><![CDATA[<p>Die normalen += Operatoren (für int, double usw.) geben etwas zurück, also macht man das bei eigenen Typen auch so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382578</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 10 Feb 2014 18:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 19:40:04 GMT]]></title><description><![CDATA[<p>Hm, widersprechen sich diese beiden Aussagen? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2382586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382586</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Mon, 10 Feb 2014 19:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 19:42:47 GMT]]></title><description><![CDATA[<p>Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382587</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 10 Feb 2014 19:42:47 GMT</pubDate></item><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 19:51:12 GMT]]></title><description><![CDATA[<p>Es muss nichts zurückgegeben werden, aus Konistenz zu built-ins sollte man aber *this zurückgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382592</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 10 Feb 2014 19:51:12 GMT</pubDate></item><item><title><![CDATA[Reply to += operator überladen on Mon, 10 Feb 2014 19:53:38 GMT]]></title><description><![CDATA[<p>Aha, ok. Danke <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2382596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2382596</guid><dc:creator><![CDATA[tröröö]]></dc:creator><pubDate>Mon, 10 Feb 2014 19:53:38 GMT</pubDate></item></channel></rss>