0

宿題があり、先生からテンプレートを使ってマトリックスクラスを作成するように言われました。1つの仕様は、Matrix1[100][20]やMatrix2[20][101]のように、間違った次元の2つの行列を乗算しようとすると、コンパイラーはランタイムではなくエラーを生成する必要があるということです。

コンパイラがそれをどのように理解するか想像できないので、私は宿題のこの部分を始めていません。

それがダミーの質問である場合は申し訳ありません。

ありがとうppl。

4

1 に答える 1

4

行列のサイズは型システムの一部である必要があります。これは、次元がテンプレート引数として渡される必要があることを意味します。つまり、Matrx<100, 20>特定のタイプです。

これで、をオーバーロードするときにoperator*()、テンプレート引数のペアを使用して、のようなパラメータリストで同じサイズの行列のみを受け入れることができます(Matrix<N, M> a, Matrix<N, M> b)

于 2012-11-23T17:50:55.373 に答える