Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个作业,我的老师告诉我们用模板创建一个矩阵类。一种规范是,如果您尝试将两个具有错误维度的矩阵相乘,例如 Matrix1[100][20] 和 Matrix2[20][101],编译器需要生成错误而不是运行时。
我还没有开始这部分作业,因为我无法想象编译器将如何解决这个问题。
对不起,如果这是一个愚蠢的问题。
谢谢大家。
矩阵的大小必须是类型系统的一部分,这意味着维度必须作为模板参数传递。即,Matrx<100, 20>是特定类型。
Matrx<100, 20>
现在,当您重载时operator*(),您可以使用一对模板参数来仅接受参数列表中相同大小的矩阵,例如(Matrix<N, M> a, Matrix<N, M> b).
operator*()
(Matrix<N, M> a, Matrix<N, M> b)