<?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[3 Parameter für operator&amp;lt;&amp;lt;]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meiner main folgenden Aufruf stehen:</p>
<p>cout &lt;&lt; computerzahl.richtigPlatzierte(meinVersuch);</p>
<p>Wobei computerzahl und meinVersuch Objekte sind.</p>
<p>Jetzt möchte ich gerne den &lt;&lt; operator schreiben.</p>
<p>So funktioniert er nicht, da meinVersuch unbekannt.</p>
<p>ostream&amp; operator&lt;&lt;(MastermindZahl &amp;out,const MastermindZahl&amp; computerzahl) {<br />
out&lt;&lt;computerzahl.richtigPlatzierte(meinVersuch);<br />
return out;<br />
}</p>
<p>aber:<br />
ostream&amp; operator&lt;&lt;(MastermindZahl &amp;out,const MastermindZahl&amp; computerzahl, const MastermindZahl meinVersuch)<br />
funktioniert auch nicht, da &lt;&lt; operator keine 3 Parameter akzeptiert.</p>
<p>Wie kann ich das Problem lösen? Vielen Dank im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158993/3-parameter-für-operator-lt-lt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 07:31:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158993.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Sep 2006 08:26:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 08:26:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meiner main folgenden Aufruf stehen:</p>
<p>cout &lt;&lt; computerzahl.richtigPlatzierte(meinVersuch);</p>
<p>Wobei computerzahl und meinVersuch Objekte sind.</p>
<p>Jetzt möchte ich gerne den &lt;&lt; operator schreiben.</p>
<p>So funktioniert er nicht, da meinVersuch unbekannt.</p>
<p>ostream&amp; operator&lt;&lt;(MastermindZahl &amp;out,const MastermindZahl&amp; computerzahl) {<br />
out&lt;&lt;computerzahl.richtigPlatzierte(meinVersuch);<br />
return out;<br />
}</p>
<p>aber:<br />
ostream&amp; operator&lt;&lt;(MastermindZahl &amp;out,const MastermindZahl&amp; computerzahl, const MastermindZahl meinVersuch)<br />
funktioniert auch nicht, da &lt;&lt; operator keine 3 Parameter akzeptiert.</p>
<p>Wie kann ich das Problem lösen? Vielen Dank im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134958</guid><dc:creator><![CDATA[Mathias_Bauer]]></dc:creator><pubDate>Mon, 11 Sep 2006 08:26:45 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 10:28:21 GMT]]></title><description><![CDATA[<p>Mathias_Bauer schrieb:</p>
<blockquote>
<p>Wie kann ich das Problem lösen?</p>
</blockquote>
<p>So gar nicht. Du könntest höchstens ein Metaobjekt dafür einfügen. Wobei ich noch nicht ganz den Sinn verstehe.</p>
<p>btw. sfds</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135029</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 11 Sep 2006 10:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 10:47:28 GMT]]></title><description><![CDATA[<p>Der Quelltext der main() ist vom Professor vorgegeben. Und es läuft so nicht. Er möchte einen &lt;&lt;operator haben. Also muss ich einen schreiben. Aber wie, oder gibt es noch eine andere Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135040</guid><dc:creator><![CDATA[Mathias_Bauer]]></dc:creator><pubDate>Mon, 11 Sep 2006 10:47:28 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 10:49:34 GMT]]></title><description><![CDATA[<p>Du brauchst einen Operator, der den Rückgabetyp von richtigPlatzierte ausgeben kann. Der Typ von computerzahl und meinVersuch ist da völlig uninteressant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135041</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 11 Sep 2006 10:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 10:50:53 GMT]]></title><description><![CDATA[<p>Hier der Quelltext der main():</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include &quot;mastermind.h&quot;
using namespace std;

void main (void) 
{ 
	int anzahlVersuche = 1; 
	MastermindZahl meinVersuch;
	MastermindZahl computerzahl; 
	computerzahl.ausdenken();
	cout &lt;&lt; &quot;Erster Versuch; gib Zahl: &quot; &lt;&lt; endl;
	meinVersuch.einlesen(computerzahl); 
	while (computerzahl != meinVersuch) 
	{ 
		cout &lt;&lt; &quot;richtig!&quot;;
		cout &lt;&lt; computerzahl.richtigPlatzierte(meinVersuch); 
        cout &lt;&lt; &quot; an der richtigen Stelle; sonst &quot;; 
		cout &lt;&lt; computerzahl.sonstNochRichtige(meinVersuch) 
		     &lt;&lt; &quot; richtig&quot; &lt;&lt; endl; 
		anzahlVersuche++; 
		cout &lt;&lt; endl &lt;&lt; anzahlVersuche &lt;&lt; &quot;. Versuch: &quot;; 
		meinVersuch.einlesen(); 
	} 
	cout &lt;&lt; endl &lt;&lt; &quot;Gefunden!&quot;; 
 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1135043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135043</guid><dc:creator><![CDATA[Mathias_Bauer]]></dc:creator><pubDate>Mon, 11 Sep 2006 10:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 11:57:38 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=1819" rel="nofollow">rüdiger</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=8" rel="nofollow">Rund um die Programmierung</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135096</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 11 Sep 2006 11:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 13:34:37 GMT]]></title><description><![CDATA[<p>Erstmal solltest du dir den op &lt;&lt; genau anschauen:</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt;(ostream&amp; lhs, const T&amp; rhs)
</code></pre>
<p>lhs ist das Stream Objekt selbst, über welches ausgegeben werden soll. In deinem Fall cout. rhs ist das Objekt, was ausgegeben werden soll. In deinem Fall ist wohl T == MastermindZahl. Wenn du im Operator jetzt schreibst:</p>
<pre><code class="language-cpp">lhs &lt;&lt; rhs;
</code></pre>
<p>musst du beachten, dass lhs (ostream) nur bekannte Argumente akzeptiert. Standardseitig sind das Sachen wie Ganzzahlen, Gleitkommazahlen, Zeichen und Strings. Objekte deines Typs MastermindZahl sind aber noch nicht bekannt. Das willst du ja genau mit dem Operator erreichen. Also musst du innerhalb der Operatorfunktion dein Objekt soweit aufdröseln, dass nur noch Sachen übrig bleiben, die ostream kennt. Was geben denn die Funktionen richtigPlatzierte bzw. sonstNochRichtige zurück? MastermindZahl? Wenn ja, was aus dem Objekt soll denn ausgegeben werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135178</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 11 Sep 2006 13:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 13:44:16 GMT]]></title><description><![CDATA[<p>Ich habe das jetzt so gelöst:</p>
<pre><code class="language-cpp">ostream&amp; MastermindZahl::operator&lt;&lt;(ostream&amp; out) {
	MastermindZahl meinVersuch;
	out&lt;&lt;richtigPlatzierte(meinVersuch)&lt;&lt;sonstNochRichtige(meinVersuch);
	return out;
}
</code></pre>
<p>Ist das so in Ordnung, da ich zum 2. Mal das Objekt &quot;meinVersuch&quot; erzeuge?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135195</guid><dc:creator><![CDATA[Mathias_Bauer]]></dc:creator><pubDate>Mon, 11 Sep 2006 13:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 13:46:21 GMT]]></title><description><![CDATA[<p>Komplett sieht das dann so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;time.h&gt;
#include &lt;stdlib.h&gt; 
#include &quot;mastermind.h&quot;
using namespace std;

bool operator!=(const MastermindZahl&amp; meinVersuch, const MastermindZahl&amp; computerzahl) {
	int i,j,number;
	j=0;
	int* pi=&amp;i;
	number=computerzahl.getNumber();
	for (i=0; i&lt;number; i++) {
		if (meinVersuch.getArray(i)!=computerzahl.getArray(i)) {
			return true;
		}
	}
	while (meinVersuch.getArray(j)==computerzahl.getArray(j)) {	
		if (j==number-1) {
			return false;
		}
		j++;
	}
}

MastermindZahl::MastermindZahl() {

}

MastermindZahl::~MastermindZahl() {

}

ostream&amp; MastermindZahl::operator&lt;&lt;(ostream&amp; out) {
	MastermindZahl meinVersuch;
	out&lt;&lt;richtigPlatzierte(meinVersuch)&lt;&lt;sonstNochRichtige(meinVersuch);
	return out;
}

void MastermindZahl::ausdenken() {
	time_t sek;
	int i;
	int* pi=&amp;i;
	cout &lt;&lt; &quot;Aus wievielen Ziffern besteht Ihre Zahl?&quot; &lt;&lt; endl
		 &lt;&lt; &quot;Eingabe: &quot;;
	cin &gt;&gt; number;
	cout &lt;&lt; endl;
	srand((unsigned) time(&amp;sek));
//	int* array = new int[number];
	for (i=0; i&lt;number; ++i) {
		array[i]=(rand()*7)%6+1;
		cout &lt;&lt; &quot;array[i]: &quot; &lt;&lt; array[i] &lt;&lt; endl;
	}		
}

void MastermindZahl::einlesen(MastermindZahl&amp; computerzahl) {
	int i;
	int* pi=&amp;i;
	number=computerzahl.getNumber();
	cout &lt;&lt; &quot;Bitte geben Sie Ihre &quot; &lt;&lt; number &lt;&lt; &quot;-stellige Zahl ein!&quot;;
	cout &lt;&lt; endl &lt;&lt; &quot;Eingabe:&quot; &lt;&lt; endl;

//	int* array = new int[number];

	for (i=0; i&lt;number; i++) {
		cout &lt;&lt; i+1 &lt;&lt; &quot;.Ziffer: &quot;;
		cin &gt;&gt; array[i];
		cout &lt;&lt; endl;
	}
}

void MastermindZahl::einlesen() {
	int i;
	cout &lt;&lt; endl &lt;&lt; &quot;Bitte geben Sie Ihre &quot; &lt;&lt; number &lt;&lt; &quot;-stellige Zahl ein!&quot;;
	cout &lt;&lt; endl &lt;&lt; &quot;Eingabe:&quot; &lt;&lt; endl;

//	int* array = new int[number];

	for (i=0; i&lt;number; i++) {
		cout &lt;&lt; i+1 &lt;&lt; &quot;.Ziffer: &quot;;
		cin &gt;&gt; array[i];
		cout &lt;&lt; endl;
	}
}

int MastermindZahl::richtigPlatzierte(MastermindZahl&amp; meinVersuch) {
	int i,counter;
	counter=0;
	for (i=0; i&lt;number; i++) {
		if (array[i]==meinVersuch.getArray(i)) {
			counter++;
		}
	}
	return counter;
}

int MastermindZahl::sonstNochRichtige(MastermindZahl&amp; meinVersuch) {
	int i,j,counter;
	counter=0;
	for (i=0; i&lt;number; i++) {
		for (j=0; j&lt;number; j++) {
			if ((array[i]==meinVersuch.getArray(j))&amp;&amp;(array[i]!=meinVersuch.getArray(i))) {
				counter++;
			}
		}
	}
	return counter;

}

int MastermindZahl::getArray(const int index)const {
	return array[index];

}

int MastermindZahl::getNumber() const{
	return number;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1135198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135198</guid><dc:creator><![CDATA[Mathias_Bauer]]></dc:creator><pubDate>Mon, 11 Sep 2006 13:46:21 GMT</pubDate></item><item><title><![CDATA[Reply to 3 Parameter für operator&amp;lt;&amp;lt; on Mon, 11 Sep 2006 21:54:58 GMT]]></title><description><![CDATA[<p>So geht das nicht. Dein operator&lt;&lt; macht keinen Sinn. Erstmal darf er keine Member-Funktion sein und dann ist das, was darin steht völliger Unsinn.</p>
<p>Die korrekte Signatur wäre:</p>
<pre><code class="language-cpp">std::ostream&amp; operator &lt;&lt;(std::ostream&amp; Stream, const MastermindZahl&amp; Zahl);
</code></pre>
<p>Aber soweit ich das sehe brauchst dir hier aber überhaupt keinen selbstdefinierten operator&lt;&lt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1135521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1135521</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Mon, 11 Sep 2006 21:54:58 GMT</pubDate></item></channel></rss>