我创建了一个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
and double s
,M * s
工作正常,但s * M
给我一个错误:
错误 C2677:二进制
*
:未找到采用类型的全局运算符Matrix
(或没有可接受的转换)
而 IDE 向我显示错误:“没有运算符*
与这些操作数匹配”。
知道可能是什么问题吗?
编辑:这是一个愚蠢的错误!我没有在标题中声明运算符,编译器看不到声明!很抱歉那...