私は、コンストラクタを使って動的にそれらを割り当てるマトリックスと、値を設定するためのistream演算子のためにいくつかのオーバーロード演算子関数を設定しようとしています。私は2つの行列(ランタイムエラー)を乗算しようとすると問題が発生しました。演算子のオーバーロード:マルチプル化行列
ご協力いただければ幸いです。 ps:私はテンプレートに精通していません。ここで
は私の*演算子関数です:
matrixType operator*(matrixType m)
{
if(Rows==m.Cols && Cols==m.Rows)
{
matrixType m3(Rows,m.Cols);
for(int i=0; i<Rows;i++)
{
for(int j=0; j<Cols; j++)
{
{
for(int g=0; g<Cols;g++)
m3.matrix[i][j]+=matrix[i][g] * m.matrix[g][j];
}
}
}
return m3;
}
}
そして、ここでは私のコピー演算子関数です:
matrixType& operator=(matrixType& m)
{
for (int i =0; i<Rows; i++)
{
for (int j=0; j<Cols; j++)
matrix[i][j]=m.matrix[i][j];
}
return *this;
}
エラーの詳細は言及していませんが、最も一般的な問題は、動的にメンバーを割り当てたときに「3のルール」(google it)に従わないことです。 'std :: vector'を使う方が良いでしょう。それは"ゼロのルール "に従うことができるからです。 – molbdnilo
こんにちは、覚えて、StackOverflowへようこそ。ヘルプページ、特に[ここではどのトピックについて聞かせていただけますか?](http://stackoverflow.com/help/on-topic)と[質問しないでください。」](http://stackoverflow.com/help/dont-ask)。さらに重要なことは、[Stack Overflow question checklist](http://meta.stackexchange.com/q/156810/204922)をお読みください。また、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)についても知りたいことがあります。 –