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.
宿題があり、先生からテンプレートを使ってマトリックスクラスを作成するように言われました。1つの仕様は、Matrix1[100][20]やMatrix2[20][101]のように、間違った次元の2つの行列を乗算しようとすると、コンパイラーはランタイムではなくエラーを生成する必要があるということです。
コンパイラがそれをどのように理解するか想像できないので、私は宿題のこの部分を始めていません。
それがダミーの質問である場合は申し訳ありません。
ありがとうppl。
行列のサイズは型システムの一部である必要があります。これは、次元がテンプレート引数として渡される必要があることを意味します。つまり、Matrx<100, 20>特定のタイプです。
Matrx<100, 20>
これで、をオーバーロードするときにoperator*()、テンプレート引数のペアを使用して、のようなパラメータリストで同じサイズの行列のみを受け入れることができます(Matrix<N, M> a, Matrix<N, M> b)。
operator*()
(Matrix<N, M> a, Matrix<N, M> b)