<?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[vergleichsoperator überladen]]></title><description><![CDATA[<p>Hallo Communuty!</p>
<p>Ich soll eine Klasse student schreiben und einen Vergleichsoperator hinzufügen der die matrikelnummer zweier Objekte vergleicht.<br />
Ich bekomme eine Fehlermeldung &quot;âbool operator==(const student&amp;)â must take exactly two arguments&quot;. Wenn ich meinem Operatoe 2 Argumente übergebe bekomme ich auch eine Fehlermeldung.</p>
<p>Habt Ihr ne Idee was ich falsch mache?</p>
<p>Lg Caro</p>
<pre><code class="language-cli">#include&lt;iostream&gt;
#include&lt;string&gt;

using namespace std;

class student{
	  private:
	  		  string vorname;
	  		  string nachname;
	  		  string matrikelnummer;				
	 public:
              student(string v,string n, string m) // Konstruktor
				:vorname(v),nachname(n),matrikelnummer(m) {};
	 		string get_matrikelnummer(); // Funktion die Matrikelnummer ausgibt	
	 		// Vergleichsoperator 
	 		 friend bool operator==(const student &amp;a);
		     // Ausgabeoperator
			 friend ostream&amp; operator&lt;&lt; (ostream&amp; stream, student&amp;);
	  };

ostream&amp; operator&lt;&lt; (ostream&amp; stream, student&amp; s)	 
{
stream &lt;&lt; s.vorname &lt;&lt; &quot; , &quot; &lt;&lt; s.nachname &lt;&lt; &quot; , &quot; &lt;&lt; s.matrikelnummer &lt;&lt; endl;  		 
} 

bool operator== (const student &amp;a)
{
return strcmp(matrikelnummer,a.matrikelnummer)==0;
}

int main()
{
student a(&quot;Hans&quot;,&quot;Meier&quot;,&quot;12345&quot;);
student b(&quot;Lilli&quot;,&quot;Baum&quot;,&quot;&amp;&amp;&amp;&amp;&amp;&quot;);

cout &lt;&lt; a;

return 0;
</code></pre>
<p>}[cli]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258835/vergleichsoperator-überladen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 03:13:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258835.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jan 2010 17:32:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vergleichsoperator überladen on Fri, 15 Jan 2010 17:32:18 GMT]]></title><description><![CDATA[<p>Hallo Communuty!</p>
<p>Ich soll eine Klasse student schreiben und einen Vergleichsoperator hinzufügen der die matrikelnummer zweier Objekte vergleicht.<br />
Ich bekomme eine Fehlermeldung &quot;âbool operator==(const student&amp;)â must take exactly two arguments&quot;. Wenn ich meinem Operatoe 2 Argumente übergebe bekomme ich auch eine Fehlermeldung.</p>
<p>Habt Ihr ne Idee was ich falsch mache?</p>
<p>Lg Caro</p>
<pre><code class="language-cli">#include&lt;iostream&gt;
#include&lt;string&gt;

using namespace std;

class student{
	  private:
	  		  string vorname;
	  		  string nachname;
	  		  string matrikelnummer;				
	 public:
              student(string v,string n, string m) // Konstruktor
				:vorname(v),nachname(n),matrikelnummer(m) {};
	 		string get_matrikelnummer(); // Funktion die Matrikelnummer ausgibt	
	 		// Vergleichsoperator 
	 		 friend bool operator==(const student &amp;a);
		     // Ausgabeoperator
			 friend ostream&amp; operator&lt;&lt; (ostream&amp; stream, student&amp;);
	  };

ostream&amp; operator&lt;&lt; (ostream&amp; stream, student&amp; s)	 
{
stream &lt;&lt; s.vorname &lt;&lt; &quot; , &quot; &lt;&lt; s.nachname &lt;&lt; &quot; , &quot; &lt;&lt; s.matrikelnummer &lt;&lt; endl;  		 
} 

bool operator== (const student &amp;a)
{
return strcmp(matrikelnummer,a.matrikelnummer)==0;
}

int main()
{
student a(&quot;Hans&quot;,&quot;Meier&quot;,&quot;12345&quot;);
student b(&quot;Lilli&quot;,&quot;Baum&quot;,&quot;&amp;&amp;&amp;&amp;&amp;&quot;);

cout &lt;&lt; a;

return 0;
</code></pre>
<p>}[cli]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839432</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Fri, 15 Jan 2010 17:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to vergleichsoperator überladen on Fri, 15 Jan 2010 17:41:09 GMT]]></title><description><![CDATA[<p>Schau mal hier in dem Artikel:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.html</a></p>
<p>Es reicht natürlich nicht nur 2 Argumtente zu übergeben. Du musst die Funktionsdeklaration natürlich auch dementsprechend ändern.<br />
Durch das, dass du die Funktion <code>friend</code> deklarierst, gibt es kein &quot;aktuelles&quot; Objekt und du musst beide übergeben.</p>
<p>btw:</p>
<pre><code class="language-cpp">return strcmp(matrikelnummer,a.matrikelnummer)==0;
</code></pre>
<p>Warum nicht gleich:</p>
<pre><code class="language-cpp">return matrikelnummer == a.matrikelnummer;
</code></pre>
<p><code>std::string</code> unterstützt den <code>==-Operator</code> .<br />
Ist natürlich wegen dem friend immernoch nicht ganz korrekt, aber es fehlt nicht mehr viel. <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/1839433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839433</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 15 Jan 2010 17:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to vergleichsoperator überladen on Fri, 15 Jan 2010 18:00:37 GMT]]></title><description><![CDATA[<p>Ich hab mir das mit den Operatoren durchgelesen und versucht das in meine Klasse einzubauen...leider kommt immer noch der Fehler...ich weiss gerade auch nicht wirklich was ich da falsch mache.</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;string&gt;

using namespace std;

class student{
	  private:
	  		  string vorname;
	  		  string nachname;
	  		  string matrikelnummer;				
	 public:
              student(string v,string n, string m) // Konstruktor
				:vorname(v),nachname(n),matrikelnummer(m) {};
	 		string get_matrikelnummer(); // Funktion die Matrikelnummer ausgibt	
             bool operator==(student const&amp; a, student const&amp; b)
             {return &amp;a.matrikelnummer == &amp;b.matrikelnummer;}
		     // Ausgabeoperator
			 friend ostream&amp; operator&lt;&lt; (ostream&amp; stream, student&amp;);
	  };

ostream&amp; operator&lt;&lt; (ostream&amp; stream, student&amp; s)	 
{
stream &lt;&lt; s.vorname &lt;&lt; &quot; , &quot; &lt;&lt; s.nachname &lt;&lt; &quot; , &quot; &lt;&lt; s.matrikelnummer &lt;&lt; endl;  		 
} 

int main()
{
student a(&quot;Hans&quot;,&quot;Meier&quot;,&quot;12345&quot;);
student b(&quot;Lilli&quot;,&quot;Baum&quot;,&quot;&amp;&amp;&amp;&amp;&amp;&quot;);

cout &lt;&lt; a;

return 0;	 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1839446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839446</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Fri, 15 Jan 2010 18:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to vergleichsoperator überladen on Fri, 15 Jan 2010 18:03:48 GMT]]></title><description><![CDATA[<p>Wo ist denn jetzt der friend hin?</p>
<pre><code class="language-cpp">{return a.matrikelnummer == b.matrikelnummer;}
</code></pre>
<p>Du musst da kein &amp;-Operator angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839449</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 15 Jan 2010 18:03:48 GMT</pubDate></item><item><title><![CDATA[Reply to vergleichsoperator überladen on Fri, 15 Jan 2010 19:02:12 GMT]]></title><description><![CDATA[<p>jetzt gehts...danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839480</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Fri, 15 Jan 2010 19:02:12 GMT</pubDate></item></channel></rss>