template <int rows, int cols>
class Matrix{
std::array<double, rows*cols> mData;
...
}
定义
operator*
以能够乘以不具有相同维数的矩阵的正确方法是什么?我尝试了此操作,但由于预期尺寸相同,因此显然无法正常工作。
template <int rows, int cols>
Matrix<rows,cols> operator*(Matrix<rows,cols>& a, Matrix<rows,cols>& b){...}
最佳答案
我认为您需要第三个模板参数:
template <int N, int M, int P>
Matrix<N,P> operator*(Matrix<N,M>& a, Matrix<M,P>& b)
{
...
}
见http://en.wikipedia.org/wiki/Matrix_multiplication
关于c++ - C++矩阵类的不同维度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29524504/