まず目的:
m4 * 3.5; //m4 is a matrix object
この機能により上記の作品、ここに実装
と全く問題なしMatrix operator *(const double n)
しかし、私は
3.5 * m4;
01つまり、逆にしようとすると、
一致する機能がないというエラーが表示されます。だから私は、この特定のケースのために、この関数を作っ
Matrix operator *(const double n, Matrix &obj)
{
for(unsigned int i = 0; i < rows; i++)
{
for(unsigned int j = 0; j < cols; j++)
{
obj[i][j] = obj[i][j] * n;
}
}
return *this;
}
は今、私はエラーを取得する:
error: ‘Matrix Matrix::operator*(double, Matrix&)’ must take either zero or one argument Matrix operator *(const double n, Matrix &obj);
error: no match for ‘operator*’ (operand types are ‘double’ and ‘Matrix’)
cout << 3.5 * m4 << endl;
私は、オペランドの問題を克服する方法がわかりません!
残念ながら、BLASやEigenなどは使用できません。この課題は、私たちにこの行列のナンセンスを闘わせることを要求する。
編集しないでください文法や間違った大文字を訂正するだけの私の投稿。私は英語のレッスンではなく、プログラミングのヘルプのためにここにいます。これらのエラーは、誰かが私のコードを理解する能力を妨げることはありませんでした! – Jaydie