<?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[Matrizen multiplikation]]></title><description><![CDATA[<p>Hallo ihr alle,</p>
<p>ich hab ein Problem bei der Multiplikation zweier Matrizen.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
using namespace std;

class QuadMatrix
{
private:
	int		dimension;
	double	matrix[3][3];
public:
	QuadMatrix::QuadMatrix(int j);
	QuadMatrix::~QuadMatrix();
	// Definieren das die Fkt. doch auf die Daten zugreifen können.
	friend inline QuadMatrix operator*(QuadMatrix m1, QuadMatrix m2);
	friend ostream operator&lt;&lt;(ostream os, QuadMatrix &amp;m);
	friend istream operator&gt;&gt;(istream is, QuadMatrix &amp;m);
};

QuadMatrix::QuadMatrix(int j)
{
	dimension = j;
}

QuadMatrix::~QuadMatrix(){}

istream operator&gt;&gt;(istream is, QuadMatrix &amp;m)
{
	for(int i=0;i&lt;m.dimension;i++)
		for(int j=0;j&lt;m.dimension;j++)
		{
			cout&lt;&lt;&quot;Bitte geben Sie das Element[&quot;&lt;&lt;i+1&lt;&lt;&quot;][&quot;&lt;&lt;j+1&lt;&lt;&quot;] ein!\n&quot;;
			is&gt;&gt;m.matrix[i][j];
		}
	return is;
}

inline QuadMatrix operator*(QuadMatrix m1, QuadMatrix m2)
{
	QuadMatrix m(m1.dimension);

	for(int i=0;i&lt;m1.dimension;i++)
		for(int j=0;j&lt;m1.dimension;j++)
			m.matrix[i][j]=m1.matrix[i][j]*m2.matrix[i][j];
	return m;
}

ostream operator&lt;&lt;(ostream os, QuadMatrix &amp;m)
{
	for(int i=0;i&lt;m.dimension;i++)
	{
		os &lt;&lt; &quot;|&quot;;
		for(int j=0;j&lt;m.dimension;j++)
			os &lt;&lt; setw(5) &lt;&lt; m.matrix[i][j];
		os &lt;&lt; &quot;|&quot; &lt;&lt; endl;
	}
	os &lt;&lt; endl;
	return os;
}

int main()
{
    int dimension = 0;
	cout &lt;&lt; &quot;Bitte geben Sie die Dimension der Matrix ein!\n&quot;;
	cin &gt;&gt; dimension;
	QuadMatrix	matrix1(dimension), matrix2(dimension);
	cin &gt;&gt; matrix1 &gt;&gt; matrix2;
	cout &lt;&lt; &quot;\nDie erste eingegebene Matrix ist\n&quot; &lt;&lt; matrix1;
	cout &lt;&lt; &quot;\nDie zweite eingegebene Matrix ist\n&quot; &lt;&lt; matrix2;
	cout &lt;&lt; &quot;\nDas Produkt der beiden Matrizen ist\n&quot; &lt;&lt; matrix1*matrix2;

	system(&quot;PAUSE&quot;);

	return 0;
}
</code></pre>
<p>Folgender Fehler</p>
<p>Error 1 error C2248: 'std::basic_ios&lt;_Elem,_Traits&gt;::basic_ios' : cannot access private member declared in class 'std::basic_ios&lt;_Elem,_Traits&gt;' c:\program files\microsoft visual studio 10.0\vc\include\istream 860</p>
<p>Das heißt ich greife auf einen privaten Typen zu wo ich es nicht darf, ich finde jedoch den Fehlern nicht....</p>
<p>Über Hilfe wäre ich sehr dankbar!</p>
<p>lg Zermy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304783/matrizen-multiplikation</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 00:00:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304783.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Jun 2012 09:19:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Matrizen multiplikation on Thu, 14 Jun 2012 09:19:35 GMT]]></title><description><![CDATA[<p>Hallo ihr alle,</p>
<p>ich hab ein Problem bei der Multiplikation zweier Matrizen.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
using namespace std;

class QuadMatrix
{
private:
	int		dimension;
	double	matrix[3][3];
public:
	QuadMatrix::QuadMatrix(int j);
	QuadMatrix::~QuadMatrix();
	// Definieren das die Fkt. doch auf die Daten zugreifen können.
	friend inline QuadMatrix operator*(QuadMatrix m1, QuadMatrix m2);
	friend ostream operator&lt;&lt;(ostream os, QuadMatrix &amp;m);
	friend istream operator&gt;&gt;(istream is, QuadMatrix &amp;m);
};

QuadMatrix::QuadMatrix(int j)
{
	dimension = j;
}

QuadMatrix::~QuadMatrix(){}

istream operator&gt;&gt;(istream is, QuadMatrix &amp;m)
{
	for(int i=0;i&lt;m.dimension;i++)
		for(int j=0;j&lt;m.dimension;j++)
		{
			cout&lt;&lt;&quot;Bitte geben Sie das Element[&quot;&lt;&lt;i+1&lt;&lt;&quot;][&quot;&lt;&lt;j+1&lt;&lt;&quot;] ein!\n&quot;;
			is&gt;&gt;m.matrix[i][j];
		}
	return is;
}

inline QuadMatrix operator*(QuadMatrix m1, QuadMatrix m2)
{
	QuadMatrix m(m1.dimension);

	for(int i=0;i&lt;m1.dimension;i++)
		for(int j=0;j&lt;m1.dimension;j++)
			m.matrix[i][j]=m1.matrix[i][j]*m2.matrix[i][j];
	return m;
}

ostream operator&lt;&lt;(ostream os, QuadMatrix &amp;m)
{
	for(int i=0;i&lt;m.dimension;i++)
	{
		os &lt;&lt; &quot;|&quot;;
		for(int j=0;j&lt;m.dimension;j++)
			os &lt;&lt; setw(5) &lt;&lt; m.matrix[i][j];
		os &lt;&lt; &quot;|&quot; &lt;&lt; endl;
	}
	os &lt;&lt; endl;
	return os;
}

int main()
{
    int dimension = 0;
	cout &lt;&lt; &quot;Bitte geben Sie die Dimension der Matrix ein!\n&quot;;
	cin &gt;&gt; dimension;
	QuadMatrix	matrix1(dimension), matrix2(dimension);
	cin &gt;&gt; matrix1 &gt;&gt; matrix2;
	cout &lt;&lt; &quot;\nDie erste eingegebene Matrix ist\n&quot; &lt;&lt; matrix1;
	cout &lt;&lt; &quot;\nDie zweite eingegebene Matrix ist\n&quot; &lt;&lt; matrix2;
	cout &lt;&lt; &quot;\nDas Produkt der beiden Matrizen ist\n&quot; &lt;&lt; matrix1*matrix2;

	system(&quot;PAUSE&quot;);

	return 0;
}
</code></pre>
<p>Folgender Fehler</p>
<p>Error 1 error C2248: 'std::basic_ios&lt;_Elem,_Traits&gt;::basic_ios' : cannot access private member declared in class 'std::basic_ios&lt;_Elem,_Traits&gt;' c:\program files\microsoft visual studio 10.0\vc\include\istream 860</p>
<p>Das heißt ich greife auf einen privaten Typen zu wo ich es nicht darf, ich finde jedoch den Fehlern nicht....</p>
<p>Über Hilfe wäre ich sehr dankbar!</p>
<p>lg Zermy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223030</guid><dc:creator><![CDATA[Zermy]]></dc:creator><pubDate>Thu, 14 Jun 2012 09:19:35 GMT</pubDate></item><item><title><![CDATA[Reply to Matrizen multiplikation on Thu, 14 Jun 2012 09:22:53 GMT]]></title><description><![CDATA[<p>Du übergibst deinen &gt;&gt; und &lt;&lt; operatoren istream und ostream als Werte. Diese können aber nicht kopiert werden. Übergib Referenzen.</p>
<p>Abgesehen davon, hat diese &quot;Multiplikation&quot;, die du da machst, nichts mit einer Matritzenmultiplikation zu tun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223032</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 14 Jun 2012 09:22:53 GMT</pubDate></item><item><title><![CDATA[Reply to Matrizen multiplikation on Thu, 14 Jun 2012 18:10:48 GMT]]></title><description><![CDATA[<p>Vielen Dank für deine Antwort!</p>
<p>Du hast recht, ich muss mich nochmal ransetzen wie ich ne Matrix multipliziere <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="😉"
    /> und auch wie ich das mit den Referenzen mache, dann sollte es ja laufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>LG</p>
<p>Zermy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223265</guid><dc:creator><![CDATA[Zermy]]></dc:creator><pubDate>Thu, 14 Jun 2012 18:10:48 GMT</pubDate></item></channel></rss>