【发布时间】:2016-12-06 23:18:00
【问题描述】:
让我定义一个矩阵类如下
template<typename T, size_t rowSize, size_t colSize>
class Matrix
{
//Class implementation
};
现在如果我有 2 个矩阵定义为
Matrix<double,3,2> A;
Matrix<double,2,5> B;
A*B;
可以做乘法吗,如果我尝试它会说没有参数可以将 rhs 作为 double,2,5 for *.是否可以将模板泛化为乘以 'double,x,y' 和 'double,y,z' 并返回一个新矩阵 'double,x,y'
【问题讨论】:
-
重载 * 符号。您的函数原型类似于: Matrix operator*(Matrix A, Matrix B)
-
对不起,但我不知道如何使用不同的参数进行重载,是不是类似于 template
Matrix & operator*(const Matrix &obj)