0

我有一个作业告诉我们为矩阵创建一个模板,其中 matrix1 的列号等于第 2 列的行号

我试过了:

 #define TEMPLATEMATRIXCR template<class T, int , int > 
 TEMPLATEMATRIXCR Matrix<T, R> operator* (Matrix<T, int, R> a, Matrix<T, R, int> b);

例如,它不起作用

矩阵 [10][30]
矩阵 [20][10]
所以我需要带有 [20][30] 的矩阵;//对不起,如果我的逻辑混乱。它告诉我 E 没有定义。

第一时间我做到了

TEMPLATEMATRIX Matrix<T, C, R> operator* (Matrix<T, C, R> a, Matrix<T,R, C> b);

但这不是他想要的,所以现在我不能只修复两个数字并让其他数字“自由”

我怎样才能使用模板做到这一点?

4

1 回答 1

1

我可能不太明白您的要求,但这最终不是您想要做的吗?

template<typename T, size_t R1, size_t C1, size_t R2>
Matrix<T, R2, C1> operator *(const Matrix<T, R1, C1>&, const Matrix<T, R2, R1>&);

或者您是否试图以编程方式使 C1 和 R2 变得任意?

于 2012-11-29T16:25:58.980 回答