0

我有一个作业,我的老师告诉我们用模板创建一个矩阵类。一种规范是,如果您尝试将两个具有错误维度的矩阵相乘,例如 Matrix1[100][20] 和 Matrix2[20][101],编译器需要生成错误而不是运行时。

我还没有开始这部分作业,因为我无法想象编译器将如何解决这个问题。

对不起,如果这是一个愚蠢的问题。

谢谢大家。

4

1 回答 1

4

矩阵的大小必须是类型系统的一部分,这意味着维度必须作为模板参数传递。即,Matrx<100, 20>是特定类型。

现在,当您重载时operator*(),您可以使用一对模板参数来仅接受参数列表中相同大小的矩阵,例如(Matrix<N, M> a, Matrix<N, M> b).

于 2012-11-23T17:50:55.373 回答