<?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[Fehlersuche bei Klassen scheitert]]></title><description><![CDATA[<p>Hallo,</p>
<p>könnte mir jemand erklären wo der Fehler in diesem Programm liegt ??<br />
Ich bekomme als Ausgabe immer nur 19 zurück.</p>
<p>Ich würde aber gerne mit der Methode a und b zwei neue Werte erzeugen und anschließend ausgeben.</p>
<p>Danke für euer bemühen.</p>
<pre><code>class X {
	private: 
		short int f; 
		short int s; 

	public:
		// Konstruktoren
		X() : f(19) , s(19)   {};

		// Methoden allgemein
		short int a()  const { return f; }
		short int b() const { return s; }

		void definiere( short int af , short int as )
		{
			f = af;
			s = as;
		}

		short int a( short int af )
		{
			srand(time(NULL));
			af =  ....
			return af;
		}
		short int b( short int&amp; as )
		{ 
			srand(time(NULL));
			as =  .....

			return as;
		}

		friend ostream&amp; operator &lt;&lt; ( ostream&amp; os , X&amp; k1 )
		{
			os &lt;&lt; &quot;f: &quot; &lt;&lt; k1.a() &lt;&lt; &quot;  s: &quot; &lt;&lt; k1.b();
			return os;
		}

};
int main ()
{
	X Y;
	cout &lt;&lt; Y;

	cout &lt;&lt;endl&lt;&lt;endl;
    system (&quot;pause&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/212854/fehlersuche-bei-klassen-scheitert</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 14:15:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212854.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 May 2008 12:58:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Sun, 11 May 2008 12:58:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>könnte mir jemand erklären wo der Fehler in diesem Programm liegt ??<br />
Ich bekomme als Ausgabe immer nur 19 zurück.</p>
<p>Ich würde aber gerne mit der Methode a und b zwei neue Werte erzeugen und anschließend ausgeben.</p>
<p>Danke für euer bemühen.</p>
<pre><code>class X {
	private: 
		short int f; 
		short int s; 

	public:
		// Konstruktoren
		X() : f(19) , s(19)   {};

		// Methoden allgemein
		short int a()  const { return f; }
		short int b() const { return s; }

		void definiere( short int af , short int as )
		{
			f = af;
			s = as;
		}

		short int a( short int af )
		{
			srand(time(NULL));
			af =  ....
			return af;
		}
		short int b( short int&amp; as )
		{ 
			srand(time(NULL));
			as =  .....

			return as;
		}

		friend ostream&amp; operator &lt;&lt; ( ostream&amp; os , X&amp; k1 )
		{
			os &lt;&lt; &quot;f: &quot; &lt;&lt; k1.a() &lt;&lt; &quot;  s: &quot; &lt;&lt; k1.b();
			return os;
		}

};
int main ()
{
	X Y;
	cout &lt;&lt; Y;

	cout &lt;&lt;endl&lt;&lt;endl;
    system (&quot;pause&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1507002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507002</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Sun, 11 May 2008 12:58:44 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Sun, 11 May 2008 22:57:23 GMT]]></title><description><![CDATA[<p>Ich würde sagen dass der Zufall falsch verwendet wird, mach die main mal so:</p>
<pre><code class="language-cpp">srand(time(0));
rand();

 X Y;
    cout &lt;&lt; Y;

    cout &lt;&lt;endl&lt;&lt;endl;
    system (&quot;pause&quot;);
    return 0;
}
</code></pre>
<p>und poste doch mal Methode &quot;a&quot; und &quot;b&quot; vollständig, ich kann gar nicht nachvollziehen was da eigentlich genau passieren soll.</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507248</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 11 May 2008 22:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Mon, 12 May 2008 17:48:27 GMT]]></title><description><![CDATA[<p>Hier der Code nochmal mit rand() komplett.<br />
Hab versucht die<br />
srand(time(NULL));<br />
an verschiedenen Orten zu platzieren. Jedoch klappt es nicht.</p>
<p>Hab in Methode b ein as = as + 8 eingefügt. Des geht auch nicht.</p>
<p>Weiß jemand Rat ????</p>
<p>class X {<br />
private:<br />
short int f;<br />
short int s;</p>
<p>public:<br />
// Konstruktoren<br />
X() : f(19) , s(19) {};</p>
<p>// Methoden allgemein<br />
short int a() const { return f; }<br />
short int b() const { return s; }</p>
<p>void definiere( short int af , short int as )<br />
{<br />
f = af;<br />
s = as;<br />
}</p>
<p>short int a( short int af )<br />
{<br />
srand(time(NULL));<br />
af = 0 + ( rand() % (40-0+1));<br />
return af;<br />
}<br />
short int b( short int&amp; as )<br />
{<br />
srand(time(NULL));<br />
as = 0 + ( rand() % (50-0+1));<br />
as = as + 8;</p>
<p>return as;<br />
}</p>
<p>friend ostream&amp; operator &lt;&lt; ( ostream&amp; os , X&amp; k1 )<br />
{<br />
os &lt;&lt; &quot;f: &quot; &lt;&lt; k1.a() &lt;&lt; &quot; s: &quot; &lt;&lt; k1.b();<br />
return os;<br />
}</p>
<p>};<br />
int main ()<br />
{<br />
X Y;<br />
cout &lt;&lt; Y;</p>
<p>cout &lt;&lt;endl&lt;&lt;endl;<br />
system (&quot;pause&quot;);<br />
return 0;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507641</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Mon, 12 May 2008 17:48:27 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Mon, 12 May 2008 17:49:58 GMT]]></title><description><![CDATA[<p>Die rand Funktion hätte ich gerne in der Klasse. Hab des rand deswegen jetzt mal nicht global probiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507644</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Mon, 12 May 2008 17:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Mon, 12 May 2008 18:24:03 GMT]]></title><description><![CDATA[<p>srand darf nur einmal aufgerufen werden, wie wärs im konstruktor?</p>
<p>dann kann die methode, die rand benutzt, bei jedem aufruf einen neuen wert kriegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507671</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Mon, 12 May 2008 18:24:03 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 07:44:30 GMT]]></title><description><![CDATA[<p>Eigentlich kann es doch gar nicht mehr an der rand() Funktion liegen wenn<br />
wie in diesem Code ...</p>
<pre><code>short int b( short int&amp; as )
{
srand(time(NULL));H
as = 0 + ( rand() % (50-0+1));
as = as + 8;
</code></pre>
<p>as = as + 8 zu keiner Veränderung führt.<br />
Ich denk mir das des bestimmt an Call by Value liegt ??!! oder nicht.</p>
<p>H I L F E !!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507890</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Tue, 13 May 2008 07:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 07:52:55 GMT]]></title><description><![CDATA[<p>Die srand(time(NULL)) bringt im Konstruktor nichts. Es wird deshalb auch 2 mal 19 ausgegeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507894</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Tue, 13 May 2008 07:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 07:56:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//Ctor
X() : f(19) , s(19)
{
    srand(time(NULL));
};

//Parameter as entfern, wozu war der gut?
short int b( )
{
    return ( rand() % 50) + 1;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1507896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507896</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 13 May 2008 07:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 08:03:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main () 
{ 
    X Y; 
    cout &lt;&lt; Y; 

    cout &lt;&lt;endl&lt;&lt;endl; 
    system (&quot;pause&quot;); 
    return 0; 
}
</code></pre>
<p>Ist das wirklich deine komplette main Funktion?</p>
<p>Wenn ja ... wird der Zahlengenerator nie aufgerufen und das Ergebnis 19 ist richtig.</p>
<p>Du hast 2 mal die Methoden int a() und int b()<br />
Das erste mal so:</p>
<pre><code class="language-cpp">short int a()  const { return f; }
short int b() const { return s; }
</code></pre>
<p>Das zweite mal mit einer überladung</p>
<pre><code class="language-cpp">short int a( short int af )
{
    srand(time(NULL));
    af =  ....
    return af;
}
short int b( short int&amp; as )
{ 
    srand(time(NULL));
    as =  .....

    return as;
}
</code></pre>
<p>Da ich vermute das du die Überladene Funktion in deiner Ausgabe aufrufen<br />
willst würde ich empfehlen die ersten umzubenennen und die zweiten so<br />
umzuschreiben das sie nichtmehr nur mit Parametern aufrufbar sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507898</guid><dc:creator><![CDATA[dark-eye]]></dc:creator><pubDate>Tue, 13 May 2008 08:03:15 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 08:26:02 GMT]]></title><description><![CDATA[<p>@ dark-eye erstmal danke. Du hast Recht mit der Überladung denk ich. Hab aber versehentlich bei der Umbenennung des Programms für das Forum einen kleinen Fehler gemacht.</p>
<p>Wie ruf ich diese Methoden in main auf damit es klappt ?<br />
Bin erst vor kurzem in das Thema Klasse eingestiegen und mich verwirrt noch einiges. Also bitte auf jeden Fehler aufmerksam machen. Danke</p>
<p>###########################<br />
so etwa in main ??</p>
<pre><code>int main ()
{
X Y;

X *p // Objektpointer erstellen
p = &amp;Y; // jetzt sollte der Objektpointer auf das erstellte Objekt Y zeigen

p.a; // so oder wie ??

cout &lt;&lt; Y;
</code></pre>
<p>##########################<br />
++++++++++++++++++++++++++++</p>
<p>++++++++++++++++++++++++++++++</p>
<p>Hier nochmal der komplette Code</p>
<pre><code>class X {
private:
short int f;
short int s;

public:
// Konstruktoren
X() : f(19) , s(19) 
{  
srand(time(NULL)); 
};

// Methoden allgemein
short int ausgabef() const { return f; }
short int ausgabes() const { return s; }

void definiere( short int af , short int as )   // die Methode definiere brauch ich dann nicht mehr oder ??
{
f = af;
s = as;
}

short int a(  )
{

return rand() %(40-0+1);
}
short int b(  )
{

return rand() % (50-0+1);
}

friend ostream&amp; operator &lt;&lt; ( ostream&amp; os , X&amp; k1 )
{
os &lt;&lt; &quot;f: &quot; &lt;&lt; k1.ausgabef() &lt;&lt; &quot; s: &quot; &lt;&lt; k1.ausgabes();
return os;
}

};
int main ()
{
X Y;
cout &lt;&lt; Y;

cout &lt;&lt;endl&lt;&lt;endl;
system (&quot;pause&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1507904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507904</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Tue, 13 May 2008 08:26:02 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 08:31:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Y.a();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1507908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507908</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 13 May 2008 08:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 08:41:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">friend ostream&amp; operator &lt;&lt; ( ostream&amp; os , X&amp; k1 )
{
    os &lt;&lt; &quot;f: &quot; &lt;&lt; k1.ausgabef() &lt;&lt; &quot; s: &quot; &lt;&lt; k1.ausgabes();
    return os;
}
</code></pre>
<p>Jetzt gibst du wieder die beiden 19er aus</p>
<p>Um Zufällige Zahlen auszugeben musst du jetzt entweder eine Methode schreiben<br />
die die Variablen f und s manipuliert.</p>
<p>oder einfach deine operator&lt;&lt; überladung abändern das diese nun tatsächlich<br />
die beiden Zufallszahlen ausgibt ... also so ...</p>
<pre><code class="language-cpp">friend ostream&amp; operator &lt;&lt; ( ostream&amp; os , X&amp; k1 )
{
    os &lt;&lt; &quot;f: &quot; &lt;&lt; k1.a() &lt;&lt; &quot; s: &quot; &lt;&lt; k1.b();
    return os;
}
</code></pre>
<p>Das ist allerdings noch kein sonderlich gutes Objekt Orientiertes vorgehen.<br />
Du solltest dich als Hintergrundinformation vielleicht mal mit den<br />
Grundsätzen von OOP Programmierung beschäftigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507915</guid><dc:creator><![CDATA[dark-eye]]></dc:creator><pubDate>Tue, 13 May 2008 08:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 09:46:29 GMT]]></title><description><![CDATA[<p>Danke jetzt bekomm ich 2 verschieden Zahlen jedes mal.</p>
<p>Nun ich hab eigentlich das Buch C++ Breymann. Hab aus dem Buch ungefähr das Schema übernommen. Oder soll ich mir ein anderes zulegen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507962</guid><dc:creator><![CDATA[kkkk3333]]></dc:creator><pubDate>Tue, 13 May 2008 09:46:29 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 09:55:11 GMT]]></title><description><![CDATA[<p>Immer langsam ... nicht gleich das Buch verbrennen <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>
<p>Ich würd mal davon ausgehn das sich der Autor was dabei gedacht hat.<br />
Ich kenn ja den Kontext nicht.</p>
<p>Also ruhig weiterlernen und dann aus dem eigenen Wissen heraus entscheiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507964</guid><dc:creator><![CDATA[dark-eye]]></dc:creator><pubDate>Tue, 13 May 2008 09:55:11 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlersuche bei Klassen scheitert on Tue, 13 May 2008 10:03:29 GMT]]></title><description><![CDATA[<p>kkkk3333 schrieb:</p>
<blockquote>
<p>Danke jetzt bekomm ich 2 verschieden Zahlen jedes mal.</p>
<p>Nun ich hab eigentlich das Buch C++ Breymann. Hab aus dem Buch ungefähr das Schema übernommen. Oder soll ich mir ein anderes zulegen ?</p>
</blockquote>
<p>Beim Breymann wird der operator&lt;&lt; für eine Rational-Klasse überladen, und da wird alles richtig gemacht und eigentlich auch gut erklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1507971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1507971</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 13 May 2008 10:03:29 GMT</pubDate></item></channel></rss>