<?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[Operandenproblem]]></title><description><![CDATA[<p>Seid gegrüsst!</p>
<p>Ich hab eine Methode mit der ich zwar einen linken Klasseoperanden und einen anderen rechten Operanden vergleichen kann, aber ich würde es auch gerne andersrum haben. Ich wäre sehr dankbar, wenn mir jemand helfen könnte.<br />
Folgenden Code hab ich bereits:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

int main() {
  complex c1(2),c2(3,-4);
  double d1=2, d2(3);
  c2.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c2==d2 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d2 &lt;&lt; endl;
  c1.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c1!=d1 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d1 &lt;&lt; endl;
  cout &lt;&lt; d1 &lt;&lt; &quot; ist &quot; &lt;&lt; (d1==c1 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  c1.print(); cout &lt;&lt; endl;
  cout &lt;&lt; d2 &lt;&lt; &quot; ist &quot; &lt;&lt; (d2!=c2 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  c2.print(); cout &lt;&lt; endl;
  cout &lt;&lt; &quot;Die konjugiert komplexe Zahl zu &quot;; c2.conj().print();
  cout &lt;&lt; &quot; ist &quot;; c2.print(); cout &lt;&lt; endl;
  return 0;
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;

class complex {
	double r, i;

	public:
		complex();
		complex(double a);
		complex(double a, double b);

		void print();
		complex conj();

		bool operator==(complex rightop);
		bool operator!=(complex rightop);

};
</code></pre>
<pre><code>#include&lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

complex::complex() {
	r=0;
	i=0;
}

complex::complex (double a) {
	r=a;
	i=0;
}

complex::complex (double a, double b) {
	r=a;
	i=b;
}

void complex::print() {
	cout &lt;&lt; r;
	if (i &gt; 0) {
		cout &lt;&lt; &quot;+&quot; &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
	if (i &lt; 0) {
		cout &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
}

complex complex::conj() {
        return complex(r, -i);
}

bool complex::operator==(complex rightop){
	if (r==rightop.r &amp;&amp; i == rightop.i) {
		return 1;
	}
	else return 0;
}

bool complex::operator!=(complex rightop) {
	if (r!=rightop.r &amp;&amp; i!=rightop.i) {
		return 1;
	}
	else return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/335708/operandenproblem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 12:15:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335708.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Dec 2015 11:05:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 11:20:42 GMT]]></title><description><![CDATA[<p>Seid gegrüsst!</p>
<p>Ich hab eine Methode mit der ich zwar einen linken Klasseoperanden und einen anderen rechten Operanden vergleichen kann, aber ich würde es auch gerne andersrum haben. Ich wäre sehr dankbar, wenn mir jemand helfen könnte.<br />
Folgenden Code hab ich bereits:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

int main() {
  complex c1(2),c2(3,-4);
  double d1=2, d2(3);
  c2.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c2==d2 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d2 &lt;&lt; endl;
  c1.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c1!=d1 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d1 &lt;&lt; endl;
  cout &lt;&lt; d1 &lt;&lt; &quot; ist &quot; &lt;&lt; (d1==c1 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  c1.print(); cout &lt;&lt; endl;
  cout &lt;&lt; d2 &lt;&lt; &quot; ist &quot; &lt;&lt; (d2!=c2 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  c2.print(); cout &lt;&lt; endl;
  cout &lt;&lt; &quot;Die konjugiert komplexe Zahl zu &quot;; c2.conj().print();
  cout &lt;&lt; &quot; ist &quot;; c2.print(); cout &lt;&lt; endl;
  return 0;
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;

class complex {
	double r, i;

	public:
		complex();
		complex(double a);
		complex(double a, double b);

		void print();
		complex conj();

		bool operator==(complex rightop);
		bool operator!=(complex rightop);

};
</code></pre>
<pre><code>#include&lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

complex::complex() {
	r=0;
	i=0;
}

complex::complex (double a) {
	r=a;
	i=0;
}

complex::complex (double a, double b) {
	r=a;
	i=b;
}

void complex::print() {
	cout &lt;&lt; r;
	if (i &gt; 0) {
		cout &lt;&lt; &quot;+&quot; &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
	if (i &lt; 0) {
		cout &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
}

complex complex::conj() {
        return complex(r, -i);
}

bool complex::operator==(complex rightop){
	if (r==rightop.r &amp;&amp; i == rightop.i) {
		return 1;
	}
	else return 0;
}

bool complex::operator!=(complex rightop) {
	if (r!=rightop.r &amp;&amp; i!=rightop.i) {
		return 1;
	}
	else return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478347</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 11:20:42 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 11:14:22 GMT]]></title><description><![CDATA[<p>Du kannst den operator für die rechtsseitige klasse außerhalb der klasse (dh als freie funktion) definieren und als erstes argument den anderen typ und als zweites deine klasse einsetzen.<br />
Btw versteh ich nicht warum du denn bei den vergleichsoperatoren 1/0 zurückgibst. Logische und Relationsoperatoren sind operatoren wie jeder andere auch müssen nicht immer in einem if etc stehen.<br />
Codetags sind übrigens zum benutzen da <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2478350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478350</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Sun, 06 Dec 2015 11:14:22 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 11:27:43 GMT]]></title><description><![CDATA[<p>Danke erstmals.</p>
<p>Meinst du es so:</p>
<pre><code>bool operator==(double, complex);
bool operator!=(double, complex);
</code></pre>
<pre><code>bool complex::operator==(complex rightop){
	return (r==rightop.r &amp;&amp; i == rightop.i);
}

bool complex::operator!=(complex rightop) {
	return (r!=rightop.r &amp;&amp; i!=rightop.i);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478353</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 11:27:43 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 11:27:05 GMT]]></title><description><![CDATA[<p>Bei deinem aktuellen Code reicht es sogar schon wenn du die Operatoren einfach als freistehende Funktionen definierst. Du musst nichtmal die verschiedenen Kombinationen complex/complex, double/complex, complex/double hinschreiben, da momentan ein double implizit zu deiner complex Klasse konvertiert werden kann (siehe <a href="http://en.cppreference.com/w/cpp/language/explicit" rel="nofollow">explicit</a> Keyword). Oft wid ein fehlendes <code>explicit</code> Keyword als Fehler angemerkt, da es zu unerwarteten Konvertierungen führen kann. Für eine complex Klasse mag es allerdings OK sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478355</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 11:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 11:50:36 GMT]]></title><description><![CDATA[<p>Pokerface schrieb:</p>
<blockquote>
<p>Danke erstmals.</p>
<p>Meinst du es so:</p>
<pre><code>bool operator==(double, complex);
bool operator!=(double, complex);
</code></pre>
<pre><code>bool complex::operator==(complex rightop){
	return (r==rightop.r &amp;&amp; i == rightop.i);
}

bool complex::operator!=(complex rightop) {
	return (r!=rightop.r &amp;&amp; i!=rightop.i);
}
</code></pre>
</blockquote>
<p>Mit diesen zwei Änderungen kommen folgende Fehler:</p>
<pre><code>/tmp/cckDrML6.o: In Funktion `main':
complex1.C:(.text+0x1ea): Nicht definierter Verweis auf `operator==(double, complex)'
complex1.C:(.text+0x27d): Nicht definierter Verweis auf `operator!=(double, complex)'
collect2: error: ld returned 1 exit status
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478361</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 11:50:36 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 12:04:50 GMT]]></title><description><![CDATA[<p>Nein, sondern eben als freie Funktion (d.h. außerhalb der Klasse) mit 2 Parametern, s.a. <a href="https://www.c-plusplus.net/forum/232010">Überladung von Operatoren in C++ (Teil 1)</a> (&quot;3.8 operator==, !=&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478363</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 06 Dec 2015 12:04:50 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 13:24:21 GMT]]></title><description><![CDATA[<p>Soll es so aussehen?</p>
<pre><code>bool operator==(complex const&amp;,complex const&amp;);
bool operator!=(complex const&amp;,complex const&amp;);
</code></pre>
<p>Sorry, bin aber noch ein Grünschnabel was die objektorientierte Programmierung angeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478388</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 13:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 14:34:45 GMT]]></title><description><![CDATA[<p>Ja, aber außerhalb von <code>class complex</code> das ist wichtig. (wo du es stehen hast kann man jetzt nur erraten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478398</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 14:34:45 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 18:43:43 GMT]]></title><description><![CDATA[<p>Danke und wie soll ich nun die beiden externen Methoden definieren bzw implementieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478433</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 18:43:43 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 18:55:57 GMT]]></title><description><![CDATA[<p>Wie jede andere freie Funktion auch:</p>
<pre><code>bool operator==(complex const&amp; lh, complex const&amp; rh)
{
  return ...;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478436</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 18:55:57 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 18:59:54 GMT]]></title><description><![CDATA[<p>Folgenden Fehler bekomm ich jetzt: &quot;Speicherzugriffsfehler (Speicherabzug geschrieben)&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478437</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 18:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 19:03:44 GMT]]></title><description><![CDATA[<p>Das heißt es compiliert jetzt immerhin schon mal? Zeig mal den Code den du jetzt benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478438</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 19:03:44 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 19:07:40 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

int main() {
  complex c1(2),c2(3,-4);
  double d1=2, d2(3);
  c2.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c2==d2 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d2 &lt;&lt; endl;
  c1.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c1!=d1 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d1 &lt;&lt; endl;
  cout &lt;&lt; d1 &lt;&lt; &quot; ist &quot; &lt;&lt; (d1==c1 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  c1.print(); cout &lt;&lt; endl;
  cout &lt;&lt; d2 &lt;&lt; &quot; ist &quot; &lt;&lt; (d2!=c2 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  c2.print(); cout &lt;&lt; endl;
  cout &lt;&lt; &quot;Die konjugiert komplexe Zahl zu &quot;; c2.conj().print();
  cout &lt;&lt; &quot; ist &quot;; c2.print(); cout &lt;&lt; endl;
  return 0;
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;

class complex {
	double r, i;

	public:
		complex();
		complex(double a);
		complex(double a, double b);

		void print();
		complex conj();

};
               bool operator==(complex const&amp; lh,complex const&amp; rh);
               bool operator!=(complex const&amp; lh,complex const&amp; rh);
</code></pre>
<pre><code>#include&lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

complex::complex() {
	r=0;
	i=0;
}

complex::complex (double a) {
	r=a;
	i=0;
}

complex::complex (double a, double b) {
	r=a;
	i=b;
}

void complex::print() {
	cout &lt;&lt; r;
	if (i &gt; 0) {
		cout &lt;&lt; &quot;+&quot; &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
	if (i &lt; 0) {
		cout &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
}

complex complex::conj() {
        return complex(r, -i);
}

bool operator==(complex const&amp; lh, complex const&amp; rh){
      return (lh==rh);

}

bool operator!=(complex const&amp; lh,complex const&amp; rh) {
      return ! (lh==rh);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478440</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 19:07:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 19:13:00 GMT]]></title><description><![CDATA[<p>Hier hast du mal ne klasse Endlosschleife:</p>
<pre><code>bool operator==(complex const&amp; lh, complex const&amp; rh){
      return (lh==rh);
}
</code></pre>
<p>Du kannst den <code>operator==</code> nicht Implementieren indem dieser sich selbst aufruft. Du musst schon deinen Code von vorher nehmen der dann Real- und Imaginärteil vergleicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478441</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 19:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 19:41:50 GMT]]></title><description><![CDATA[<p>Ok, danke und wie kann ich nun auf den realen und imaginären Teil zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478444</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 19:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 19:48:17 GMT]]></title><description><![CDATA[<p>Achso der private bei dir. Da gibts 3 Möglichkeiten die mir einfallen:</p>
<p>1. Du machst die Member public. Eigentlich nicht so schön aber bei komplexen Zahlen kann man dadurch das die Member public sind nichts kaputt machen.<br />
2. Du erststellst Funktionen um den Real- und Imaginärteil auszulesen. Die sollte man so oder so haben, sonst ist deine Klasse wenig praktisch.<br />
3. Du befreundest (siehe <a href="http://en.cppreference.com/w/cpp/language/friend" rel="nofollow">friend</a> Keyword) die <code>operator==</code> Funktion (etwas unschöne Lösung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478445</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 19:48:17 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 20:02:38 GMT]]></title><description><![CDATA[<p>Ich habs mal mit der public-Version probiert - hat funktioniert. Danke.<br />
Da wir aber die Instanzvariablen private haben müssen, muss ich eine andere Variante auswählen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478448</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 20:02:38 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 20:13:49 GMT]]></title><description><![CDATA[<p>Die friend-Version ist eigentlich gar nicht mal so unschön, schließlich gehört die Funktion ja direkt zur Klasse dazu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478449</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Sun, 06 Dec 2015 20:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 20:17:07 GMT]]></title><description><![CDATA[<p>Hab es so gelöst, passt das so?:</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

int main() {
  complex c1(2),c2(3,-4);
  double d1=2, d2(3);
  c2.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c2==d2 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d2 &lt;&lt; endl;
  c1.print(); cout &lt;&lt; &quot; ist &quot; &lt;&lt; (c1!=d1 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  cout &lt;&lt; d1 &lt;&lt; endl;
  cout &lt;&lt; d1 &lt;&lt; &quot; ist &quot; &lt;&lt; (d1==c1 ? &quot;&quot; : &quot;nicht &quot;) &lt;&lt; &quot;gleich &quot;;
  c1.print(); cout &lt;&lt; endl;
  cout &lt;&lt; d2 &lt;&lt; &quot; ist &quot; &lt;&lt; (d2!=c2 ? &quot;nicht &quot; : &quot;&quot;) &lt;&lt; &quot;gleich &quot;;
  c2.print(); cout &lt;&lt; endl;
  cout &lt;&lt; &quot;Die konjugiert komplexe Zahl zu &quot;; c2.conj().print();
  cout &lt;&lt; &quot; ist &quot;; c2.print(); cout &lt;&lt; endl;
  return 0;
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
#include &quot;complex.h&quot;

using namespace std;

complex::complex() {
	r=0;
	i=0;
}

complex::complex (double a) {
	r=a;
	i=0;
}

complex::complex (double a, double b) {
	r=a;
	i=b;
}

void complex::print() {
	cout &lt;&lt; r;
	if (i &gt; 0) {
		cout &lt;&lt; &quot;+&quot; &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
	if (i &lt; 0) {
		cout &lt;&lt; i &lt;&lt; &quot;i&quot;;
	}
}

complex complex::conj() {
        return complex(r, -i);
}

bool operator==(complex const&amp; lh, complex const&amp; rh){
     return (lh.r==rh.r &amp;&amp; lh.i == rh.i);
}

bool operator!=(complex const&amp; lh,complex const&amp; rh) {
     return !(lh.r==rh.r &amp;&amp; lh.i == rh.i);
}
</code></pre>
<pre><code>#include&lt;iostream&gt;
using namespace std;

class complex {
double r, i;

	public:
		complex();
		complex(double a);
		complex(double a, double b);

		void print();
		complex conj();

                friend bool operator==(complex const&amp; lh,complex const&amp; rh);
                friend bool operator!=(complex const&amp; lh,complex const&amp; rh);

};

bool operator==(complex const&amp; lh,complex const&amp; rh);
bool operator!=(complex const&amp; lh,complex const&amp; rh);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478450</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 20:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 20:25:19 GMT]]></title><description><![CDATA[<p>Ja. Allerdings wäre es wie schon gesagt praktisch trotzdem Funktionen zu haben mit der man den Real- und Imaginär auslesen kann.</p>
<p>PS: Den <code>operator!=</code> hättest du gar nicht ändern brauchen. Wenn du diesen implementierst indem du den <code>operator==</code> benutzt ist das schon OK.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478451</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 06 Dec 2015 20:25:19 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Sun, 06 Dec 2015 20:28:10 GMT]]></title><description><![CDATA[<p>Vielen, vielen Dank <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478452</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Sun, 06 Dec 2015 20:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Mon, 07 Dec 2015 11:21:48 GMT]]></title><description><![CDATA[<p>SO, eine Frage hätte ich noch <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="🙂"
    /><br />
Wie wichtig sind die const-Bezeichnungen?<br />
Ist es ein Problem wenn ich sie einfach weglasse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478526</guid><dc:creator><![CDATA[Pokerface]]></dc:creator><pubDate>Mon, 07 Dec 2015 11:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to Operandenproblem on Mon, 07 Dec 2015 11:31:50 GMT]]></title><description><![CDATA[<p>Pokerface schrieb:</p>
<blockquote>
<p>Wie wichtig sind die const-Bezeichnungen?<br />
Ist es ein Problem wenn ich sie einfach weglasse?</p>
</blockquote>
<p>das muss nicht unbedingt ein Problem sein, im günstigsten Fall ist es nur &quot;schlechter Stil&quot;. Kann aber durchaus zu schwer zu findenden Bugs führen.</p>
<p>Daher solltest du verstehen, warum die const an den verschiedenen Stellen benötigt werden, und diese dementsprechend auch hinschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478527</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Mon, 07 Dec 2015 11:31:50 GMT</pubDate></item></channel></rss>