<?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[Anfängerproblem: Initialisierung]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade mich in C++ einzuarbeiten - habe bisher<br />
vorwiegend mit Java gearbeitet.<br />
Nun bin ich auf ein Problem beim initialisieren von Objekten gestoßen, wie<br />
der Output des folgenden Minimalbeispiels zeigt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Matrix {
private:
	double **matrix;
	unsigned cols;
	unsigned rows;
	Matrix() :
		matrix(0), cols(0), rows(0) {
	}

public:
	Matrix(unsigned Rows, unsigned Cols, double ar[]) :
		cols(Cols), rows(Rows) {
		matrix = new double *[cols];
		int iter = 0;
		for (unsigned i = 0; i &lt; rows; i++) {
			matrix[i] = new double[rows];
			for (unsigned j = 0; j &lt; cols; j++) {
				matrix[i][j] = ar[iter];
				cout &lt;&lt; &quot;matrix[&quot; &lt;&lt; i &lt;&lt; &quot;][&quot; &lt;&lt; j &lt;&lt; &quot;]= &quot; &lt;&lt; matrix[i][j] &lt;&lt; endl;
				iter++;
			}
		}
	}

	friend ostream &amp; operator&lt;&lt;(ostream &amp; s, const Matrix &amp; M) {
		unsigned row = M.rows;
		unsigned col = M.cols;
		for (unsigned i = 0; i &lt; row; i++)
			for (unsigned j = 0; j &lt; col; j++) {
				s &lt;&lt; &quot;M(&quot; &lt;&lt; i &lt;&lt; &quot;,&quot; &lt;&lt; j &lt;&lt; &quot;)= &quot; &lt;&lt; M.matrix[i][j] &lt;&lt; endl;
			}
		return s;
	}
};

int main() {
	const int arLength = 12;
	double ar[arLength] = { 1,2, 3,4, 5,6 };
	Matrix m1(2, 3, ar);
	cout &lt;&lt; m1;
}
</code></pre>
<p>liefert den Output:</p>
<p>`</p>
<p>matrix[0][0]= 1</p>
<p>matrix[0][1]= 2</p>
<p>matrix[0][2]= 3</p>
<p>matrix[1][0]= 4</p>
<p>matrix[1][1]= 5</p>
<p>matrix[1][2]= 6</p>
<p>M(0,0)= 1</p>
<p>M(0,1)= 2</p>
<p>M(0,2)= 5.30499e-313</p>
<p>M(1,0)= 4</p>
<p>M(1,1)= 5</p>
<p>M(1,2)= 6</p>
<p>`</p>
<p>Würde mich sehr freuen, wenn mir jemand weiterhelfen könnte!<br />
Da ich mit C++ noch nicht so vertraut bin, bin ich auch<br />
sehr dankbar für stilistische Verbesserungsvorschläge.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281575/anfängerproblem-initialisierung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 14:58:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281575.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Feb 2011 10:34:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 10:34:44 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade mich in C++ einzuarbeiten - habe bisher<br />
vorwiegend mit Java gearbeitet.<br />
Nun bin ich auf ein Problem beim initialisieren von Objekten gestoßen, wie<br />
der Output des folgenden Minimalbeispiels zeigt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Matrix {
private:
	double **matrix;
	unsigned cols;
	unsigned rows;
	Matrix() :
		matrix(0), cols(0), rows(0) {
	}

public:
	Matrix(unsigned Rows, unsigned Cols, double ar[]) :
		cols(Cols), rows(Rows) {
		matrix = new double *[cols];
		int iter = 0;
		for (unsigned i = 0; i &lt; rows; i++) {
			matrix[i] = new double[rows];
			for (unsigned j = 0; j &lt; cols; j++) {
				matrix[i][j] = ar[iter];
				cout &lt;&lt; &quot;matrix[&quot; &lt;&lt; i &lt;&lt; &quot;][&quot; &lt;&lt; j &lt;&lt; &quot;]= &quot; &lt;&lt; matrix[i][j] &lt;&lt; endl;
				iter++;
			}
		}
	}

	friend ostream &amp; operator&lt;&lt;(ostream &amp; s, const Matrix &amp; M) {
		unsigned row = M.rows;
		unsigned col = M.cols;
		for (unsigned i = 0; i &lt; row; i++)
			for (unsigned j = 0; j &lt; col; j++) {
				s &lt;&lt; &quot;M(&quot; &lt;&lt; i &lt;&lt; &quot;,&quot; &lt;&lt; j &lt;&lt; &quot;)= &quot; &lt;&lt; M.matrix[i][j] &lt;&lt; endl;
			}
		return s;
	}
};

int main() {
	const int arLength = 12;
	double ar[arLength] = { 1,2, 3,4, 5,6 };
	Matrix m1(2, 3, ar);
	cout &lt;&lt; m1;
}
</code></pre>
<p>liefert den Output:</p>
<p>`</p>
<p>matrix[0][0]= 1</p>
<p>matrix[0][1]= 2</p>
<p>matrix[0][2]= 3</p>
<p>matrix[1][0]= 4</p>
<p>matrix[1][1]= 5</p>
<p>matrix[1][2]= 6</p>
<p>M(0,0)= 1</p>
<p>M(0,1)= 2</p>
<p>M(0,2)= 5.30499e-313</p>
<p>M(1,0)= 4</p>
<p>M(1,1)= 5</p>
<p>M(1,2)= 6</p>
<p>`</p>
<p>Würde mich sehr freuen, wenn mir jemand weiterhelfen könnte!<br />
Da ich mit C++ noch nicht so vertraut bin, bin ich auch<br />
sehr dankbar für stilistische Verbesserungsvorschläge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016447</guid><dc:creator><![CDATA[fgg]]></dc:creator><pubDate>Fri, 04 Feb 2011 10:34:44 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 11:09:56 GMT]]></title><description><![CDATA[<p>du gibst irgendwie gar keinen Datentyp an?<br />
unsigned row, unsigned col, etc...<br />
Oder ist das implizit int in C++?</p>
<p>Selbst falls das stimmt ist es schlechter Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016462</guid><dc:creator><![CDATA[orioon]]></dc:creator><pubDate>Fri, 04 Feb 2011 11:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 11:15:55 GMT]]></title><description><![CDATA[<p>Du hast bei der Speicherallokation &quot;rows&quot; und &quot;cols&quot; vertauscht:</p>
<pre><code class="language-cpp">matrix = new double *[rows]; // hier stand cols
int iter = 0;
for (unsigned i = 0; i &lt; rows; i++) {
   matrix[i] = new double[cols]; // hier stand rows
   for (unsigned j = 0; j &lt; cols; j++) 
      ...
</code></pre>
<p>Für eine Matrix-Klasse solltest du dir auch mal std::vector&lt;&gt; (#include &lt;vector&gt;) ansehen.</p>
<p>P.S. &quot;unsigned&quot; ist schon so in Ordnung (&quot;int&quot; ist ja Standard).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016465</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 04 Feb 2011 11:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 13:01:19 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>P.S. &quot;unsigned&quot; ist schon so in Ordnung (&quot;int&quot; ist ja Standard).</p>
</blockquote>
<p>Nach dem alten C-Standard vielleicht. Aber nicht in C++.</p>
<p>EDIT: Das ist Unsinn. Bitte ignorieren <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/2016468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016468</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 04 Feb 2011 13:01:19 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 11:34:46 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Th69 schrieb:</p>
<blockquote>
<p>P.S. &quot;unsigned&quot; ist schon so in Ordnung (&quot;int&quot; ist ja Standard).</p>
</blockquote>
<p>Nach dem alten C-Standard vielleicht. Aber nicht in C++.</p>
</blockquote>
<p>Auch in C++ ist &quot;unsigned&quot; das gleiche wie &quot;unsigned int&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016477</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 04 Feb 2011 11:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 11:37:07 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Th69 schrieb:</p>
<blockquote>
<p>P.S. &quot;unsigned&quot; ist schon so in Ordnung (&quot;int&quot; ist ja Standard).</p>
</blockquote>
<p>Nach dem alten C-Standard vielleicht. Aber nicht in C++.</p>
</blockquote>
<p>Quelle?<br />
In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden. Prinzipiell ist damit int überflüssig, nur wer schreibt schon gern fünf Zeichen mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> . Ich würde mich wundern, wenn das in C++ nicht mehr so ist. Allein wegen der Kompatibilität.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016479</guid><dc:creator><![CDATA[signed]]></dc:creator><pubDate>Fri, 04 Feb 2011 11:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 12:03:24 GMT]]></title><description><![CDATA[<p>Du verdrehst row und col.<br />
Schau dir das nochmal näher an.</p>
<p>PS:<br />
einfacher ist es, ein array mit row*col Elementen anzulegen und damit zu arbeiten. Spart viel Arbeit und ist idR auch schneller.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016488</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 04 Feb 2011 12:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 12:07:02 GMT]]></title><description><![CDATA[<p>signed schrieb:</p>
<blockquote>
<p>In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden.</p>
</blockquote>
<p>Aber nur nach dem alten Standard von 1989. In C99 ist das nicht mehr erlaubt. Und in C++ war es nie erlaubt, soweit ich weiß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016490</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 04 Feb 2011 12:07:02 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 12:40:33 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>signed schrieb:</p>
<blockquote>
<p>In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden.</p>
</blockquote>
<p>Aber nur nach dem alten Standard von 1989. In C99 ist das nicht mehr erlaubt. Und in C++ war es nie erlaubt, soweit ich weiß.</p>
</blockquote>
<p>Das ist schwer zu glauben, wenn man bedenkt, dass C und C++ bis C89 bis auf eine Ausnahme voll kompatibel waren. Und nein, die Sache mit den Spezifizierern ist nicht diese Ausnahme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016501</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 04 Feb 2011 12:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 12:53:27 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>signed schrieb:</p>
<blockquote>
<p>In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden.</p>
</blockquote>
<p>Aber nur nach dem alten Standard von 1989. In C99 ist das nicht mehr erlaubt. Und in C++ war es nie erlaubt, soweit ich weiß.</p>
</blockquote>
<p>Was du meinst ist default int bei unbekannten Objekten.<br />
zB</p>
<p>main() { return 1; }</p>
<p>unsigned war aber schon immer das gleiche wie unsigned int.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016505</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 04 Feb 2011 12:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 12:53:59 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Das ist schwer zu glauben, wenn man bedenkt, dass C und C++ bis C89 bis auf eine Ausnahme voll kompatibel waren.</p>
</blockquote>
<p>Welche eine Ausnahme meinst du?</p>
<p>Implizite Konvertierbarkeit von void-Zeigern?<br />
Implizite Funktionsdeklarationen?<br />
Die Möglichkeit, Variablen überall zu deklarieren?<br />
Einzeilige Kommentare?</p>
<p>Ohne Anspruch auf Vollständigkeit, es gab auch noch irgendwas, wo man nur mit konstanten Ausdrücken initialisieren konnte. Und ich bezweifle auch, ob C89 Digraphs kennt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016506</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 04 Feb 2011 12:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 12:58:09 GMT]]></title><description><![CDATA[<p><a href="http://david.tribble.com/text/cdiffs.htm#C90-impl-var" rel="nofollow">http://david.tribble.com/text/cdiffs.htm#C90-impl-var</a></p>
<p>Diese Diskussion hier ist sehr strange.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016509</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 04 Feb 2011 12:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 13:00:47 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>unsigned war aber schon immer das gleiche wie unsigned int.</p>
</blockquote>
<p>Stimmt, da habe ich etwas durcheinandergeworfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016510</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 04 Feb 2011 13:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 13:01:58 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Die Möglichkeit, Variablen überall zu deklarieren?<br />
Einzeilige Kommentare?</p>
</blockquote>
<p>Das sind C++ Features, die gibt es natürlich nicht in C(89). Du musst schon aufpassen wie herum die Kompatibilitat ist. Und das andere was du aufzählst sind eben ziemliche Kleinigkeiten bis auf die Konvertierung von void*.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016513</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 04 Feb 2011 13:01:58 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 13:12:57 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das sind C++ Features, die gibt es natürlich nicht in C(89). Du musst schon aufpassen wie herum die Kompatibilitat ist.</p>
</blockquote>
<p>Das sind auch C99-Features, darum hatte ich sie aufgezählt.</p>
<p>Aber auch wenn man sich auf die Richtung C89-&gt;C++ beschränkt: Da werden durch neue Schlüsselwörter eine ganze Menge Bezeichner ungültig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016515</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 04 Feb 2011 13:12:57 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Initialisierung on Fri, 04 Feb 2011 13:54:46 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antworten und Ratschläge.<br />
Wie Th69 richtig bemerkt hat habe ich <code>rows</code> and <code>cols</code> vertauscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2016532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2016532</guid><dc:creator><![CDATA[fgg]]></dc:creator><pubDate>Fri, 04 Feb 2011 13:54:46 GMT</pubDate></item></channel></rss>