我有一个功课,告诉我们为矩阵创建一个模板,其中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);
但这不是他想要的,所以现在我不能只修复2个数字并使其他人“免费”
我怎样才能使用模板?
答案 0 :(得分: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任意?