<?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[Problem bei Array Übergabe im Konstruktor]]></title><description><![CDATA[<p>Hi,<br />
ich möchte ein Array mit 10 Zahlen einem Konstruktor übergeben. Das Problem dabei ist das dieses im Konstruktor nicht ankommt.<br />
Wärend ich bei Elemente 1: korrekt 10 angezeigt bekomme, sind es bei Elemente2: nur noch 2. Was mache ich falsch</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class kleinsteZahl
{
private:
	int zahlen[10];
public:
	kleinsteZahl()
	{
	}
	kleinsteZahl(int eingabe[10])
	{

			std::cout&lt;&lt;&quot;\nElemente 2: &lt;&lt;&quot;+sizeof(eingabe)/sizeof(int);
			for (int i=0;i&lt;sizeof(eingabe)/sizeof(int);i++)
				zahlen[i]=eingabe[i];
	}
	int berechneKleinsteZahl()
	{
		int i=0;
		int y=zahlen[0];
		while (i &lt; sizeof(zahlen)/sizeof(int))
		{
			if(zahlen[i]&lt;y)
				y = zahlen[i];
			i++;
		}
		return y;
	}

}
;

using namespace std;

void main()
{
	int eingabezahlen[10];
	char exit;
	for (int i=0; i&lt;10;i++)
	{
		cout&lt;&lt;&quot;\nBitte geben Sie die &quot;&lt;&lt;i+1&lt;&lt;&quot; Zahl ein: &quot;;
		cin&gt;&gt; eingabezahlen[i];

	}	
	cout&lt;&lt;&quot;\nElemente 1: &quot;&lt;&lt;sizeof(eingabezahlen)/sizeof(int);
	kleinsteZahl a1(eingabezahlen);
	cout&lt;&lt;&quot;\nDie kleinste Zahl ist: &quot;&lt;&lt; a1.berechneKleinsteZahl();
	cin &gt;&gt;exit;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/231486/problem-bei-array-übergabe-im-konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 22:43:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231486.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Jan 2009 17:44:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei Array Übergabe im Konstruktor on Sun, 11 Jan 2009 17:44:29 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich möchte ein Array mit 10 Zahlen einem Konstruktor übergeben. Das Problem dabei ist das dieses im Konstruktor nicht ankommt.<br />
Wärend ich bei Elemente 1: korrekt 10 angezeigt bekomme, sind es bei Elemente2: nur noch 2. Was mache ich falsch</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class kleinsteZahl
{
private:
	int zahlen[10];
public:
	kleinsteZahl()
	{
	}
	kleinsteZahl(int eingabe[10])
	{

			std::cout&lt;&lt;&quot;\nElemente 2: &lt;&lt;&quot;+sizeof(eingabe)/sizeof(int);
			for (int i=0;i&lt;sizeof(eingabe)/sizeof(int);i++)
				zahlen[i]=eingabe[i];
	}
	int berechneKleinsteZahl()
	{
		int i=0;
		int y=zahlen[0];
		while (i &lt; sizeof(zahlen)/sizeof(int))
		{
			if(zahlen[i]&lt;y)
				y = zahlen[i];
			i++;
		}
		return y;
	}

}
;

using namespace std;

void main()
{
	int eingabezahlen[10];
	char exit;
	for (int i=0; i&lt;10;i++)
	{
		cout&lt;&lt;&quot;\nBitte geben Sie die &quot;&lt;&lt;i+1&lt;&lt;&quot; Zahl ein: &quot;;
		cin&gt;&gt; eingabezahlen[i];

	}	
	cout&lt;&lt;&quot;\nElemente 1: &quot;&lt;&lt;sizeof(eingabezahlen)/sizeof(int);
	kleinsteZahl a1(eingabezahlen);
	cout&lt;&lt;&quot;\nDie kleinste Zahl ist: &quot;&lt;&lt; a1.berechneKleinsteZahl();
	cin &gt;&gt;exit;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1643491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643491</guid><dc:creator><![CDATA[malojo]]></dc:creator><pubDate>Sun, 11 Jan 2009 17:44:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Array Übergabe im Konstruktor on Sun, 11 Jan 2009 18:08:04 GMT]]></title><description><![CDATA[<p>Arrays können nicht an Funktionen übergeben werden. Du kannst nur Zeiger oder Referenzen auf sie übergeben. Wenn du als Parameter <code>int eingabe[10]</code> hast, ist das gleichwertig zu <code>int* eingabe</code> . Deshalb tut auch <code>sizeof</code> nicht, was du willst - der Operator gibt die Grösse eines Zeigers (üblicherweise 4 Byte) und nicht die Grösse des Arrays zurück.</p>
<p>Um das zu lösen, musst du die Grösse separat übergeben. Einfacher wäre es jedoch, Container anstelle von Arrays zu benutzen, zum Beispiel die der STL.</p>
<p>Was du hier willst, ist mir auch nicht ganz klar:</p>
<pre><code class="language-cpp">std::cout&lt;&lt;&quot;\nElemente 2: &lt;&lt;&quot;+sizeof(eingabe)/sizeof(int);
</code></pre>
<p>Zudem solltest du statt <code>void main()</code> besser <code>int main()</code> schreiben, das ist nämlich Standard-C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643505</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 11 Jan 2009 18:08:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Array Übergabe im Konstruktor on Sun, 11 Jan 2009 18:11:37 GMT]]></title><description><![CDATA[<p>Für so eine Berechnung eine Klasse zu verwenden ist schlichtweg Overkill.</p>
<p>Schau dir außerdem mal Zeile 14 etwas genauer an, da hast du dich vertippt. Korrekt müsste dort 1 rauskommen. (Die Begründung hat Nexus schon geliefert.) Mit dem (fehlerhaften) + erreichst du nur deine Inkrementierung des Zeigers auf die vorher angebene Zeichenkette (um 1), was dazu führt, dass das <code>\n</code> am Anfang wegfällt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1643507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1643507</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sun, 11 Jan 2009 18:11:37 GMT</pubDate></item></channel></rss>