Matrix
基本的に数学的行列を表すクラスを作成しました。スカラー行列の乗算を使用するために、*
演算子を次のようにオーバーロードしました。
Matrix Matrix::operator*(double scalar) const
{
Matrix result(*this);
result *= scalar;
return result;
}
演算子を左からも機能させるために、次を使用しました。
Matrix operator*(double a, const Matrix &M)
{
return M * a;
}
とを指定するMatrix M
とdouble s
、正常にM * s
動作しますがs * M
、エラーが発生します。
エラー C2677: バイナリ
*
: 型を取るグローバル演算子が見つかりませんMatrix
(または、受け入れ可能な変換がありません)
IDE にはエラーが表示されますが、「これらのオペランドに一致する演算子はありません」*
というエラーが表示されます。
何が問題なのですか?
編集:それはばかげた間違いでした!ヘッダーで演算子を宣言していなかったので、コンパイラは宣言を認識できませんでした! 申し訳ありません...