<?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[Frage zum operator+]]></title><description><![CDATA[<p>Hallo wann braucht man eine Operator Überladung ?</p>
<p>Wieso sollte man hier operator+ vorziehen anstatt einfach zu schreiben:</p>
<p>c = a + b ;</p>
<p>Das ist doch viel einfacher und man hat weniger Schreibarbeit.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class complex
{

public:

      double re;

      complex() :
      re(0)
      {}

      complex(double r) :
      re(r)
      {}

      void Ausgabe()
      {
         cout &lt;&lt; &quot;re = &quot; &lt;&lt; re &lt;&lt; endl;
      }
};

complex operator+ ( complex &amp;a,  complex &amp;b)
{
   complex c;
   c.re = a.re  + b.re;
   return c;
}

int main()
{

   complex c;
   complex a(1), b(2) ;

   c = operator+ (a, b);
   c.Ausgabe();

   a=2;
   b=8;

   c = a + b ;
   c.Ausgabe();;

system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/272684/frage-zum-operator</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 19:20:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272684.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Aug 2010 10:06:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 10:06:59 GMT]]></title><description><![CDATA[<p>Hallo wann braucht man eine Operator Überladung ?</p>
<p>Wieso sollte man hier operator+ vorziehen anstatt einfach zu schreiben:</p>
<p>c = a + b ;</p>
<p>Das ist doch viel einfacher und man hat weniger Schreibarbeit.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class complex
{

public:

      double re;

      complex() :
      re(0)
      {}

      complex(double r) :
      re(r)
      {}

      void Ausgabe()
      {
         cout &lt;&lt; &quot;re = &quot; &lt;&lt; re &lt;&lt; endl;
      }
};

complex operator+ ( complex &amp;a,  complex &amp;b)
{
   complex c;
   c.re = a.re  + b.re;
   return c;
}

int main()
{

   complex c;
   complex a(1), b(2) ;

   c = operator+ (a, b);
   c.Ausgabe();

   a=2;
   b=8;

   c = a + b ;
   c.Ausgabe();;

system(&quot;PAUSE&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1943269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943269</guid><dc:creator><![CDATA[++]]></dc:creator><pubDate>Mon, 23 Aug 2010 10:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 10:10:11 GMT]]></title><description><![CDATA[<p>Du hast Operatorüberladung nicht verstanden. Der Sinn der Sache ist ja gerade, dass man dann c = a + b schreiben kann! Und dann wird der selbstdefinierte Operator genommen. Versuch einmal c = a + b zu schreiben, ohne dass du den Operator definierst und guck was passiert.</p>
<p>Wo hast du diese Idee überhaupt her?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943270</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Aug 2010 10:10:11 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 10:52:45 GMT]]></title><description><![CDATA[<p>Die Idee is mir einfach so eingefallen. ^^</p>
<p>Wann braucht man den diese Operator sachen ?</p>
<p>Wenn ich mir so die Objektorientiere Programmierung angucke denke ich jedes mal wann man was braucht.</p>
<p>Eine Addtion in diesem Fall kann man ja auch über eine Memberfunktion machen was meiner Meinung nach übersichtlicher und leichter ist ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943291</guid><dc:creator><![CDATA[++]]></dc:creator><pubDate>Mon, 23 Aug 2010 10:52:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 11:45:19 GMT]]></title><description><![CDATA[<p>++ schrieb:</p>
<blockquote>
<p>Eine Addtion in diesem Fall kann man ja auch über eine Memberfunktion machen was meiner Meinung nach übersichtlicher und leichter ist ...</p>
</blockquote>
<p>Wenn du meinst, dass das so ist, dann lass es sein. Operatorüberladung &quot;braucht&quot; man nie, es ist nur eine andere Schreibweise für Funktionen. Du musst nur damit rechnen, dass andere Programmierer bei einer complex-Klasse erstmal &quot;a + b&quot; schreiben werden wenn sie &quot;a plus b&quot; meinen anstatt complex::add(a,b), einfach weil man es die übliche Konvention ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943320</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Aug 2010 11:45:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 12:56:47 GMT]]></title><description><![CDATA[<p>Zuerst sollte man sich entscheiden was man möchte.<br />
Dir sagt es nicht zu operator+ (a, b) zu schreiben weil c = a+b einfacher wäre und wenn eine entsprechende Lösung präsentiert wird sind Methoden auf einmal besser da einfacher zu verstehen oO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943359</guid><dc:creator><![CDATA[FrageZeichen++]]></dc:creator><pubDate>Mon, 23 Aug 2010 12:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 13:35:56 GMT]]></title><description><![CDATA[<p>Ich fühle mich verpflichtet, anzumerken, dass</p>
<pre><code class="language-cpp">using namespace std;

class complex 
{
</code></pre>
<p>keine gute Idee ist, weil es in der Standardbibliothek eine Klasse std::complex gibt und die Standardheader sich beliebig gegenseitig einbinden dürfen. Das kompiliert mehr oder weniger zufällig.</p>
<p>Was den praktischen Nutzen von Operatorüberladung angeht, es ist in Verbindung mit Templates sehr hilfreich. Einfaches Beispiel:</p>
<pre><code class="language-cpp">template&lt;typename T&gt; T square(T const &amp;x) {
  return x * x;
}

// ...

double  d = square(2.0);
complex c = square(complex(1.0, 2.0));
</code></pre>
<p>Wenn complex keinen operator* hat, muss ich die Vorlage extra für den Typen spezialisieren, was den Sinn der Funktionsvorlage ad absurdum führt. Mit Operatorüberladung kann ich ein basistypähnliches Interface erwarten und seine Implementation dem Clienttypen überlassen. Das gängigste Beispiel dafür dürften wohl Iteratoren sein, die je nach Iteratorklasse mehr oder weniger das Interface eines Zeigers annähern, was dazu führt, dass alle Vorlagen, die Iteratoren annehmen, auch mit Zeigern umgehen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943375</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 23 Aug 2010 13:35:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum operator+ on Mon, 23 Aug 2010 13:36:26 GMT]]></title><description><![CDATA[<p>Ich komme zwar aus der Java-Ecke, aber Operatoren-Überladung kann bis zu einem gewissen Grad schon manchmal nett sein:</p>
<pre><code class="language-cpp">// ohne
newnumber = number.sub(32).mul(5/9)

// mit
newnumber = (number - 32) * (5/9)
</code></pre>
<p>Auch schön: Index-Operator für Datenstrukturen, etc.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1943377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1943377</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 23 Aug 2010 13:36:26 GMT</pubDate></item></channel></rss>