0

マトリックス1の列番号が列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つの数字を修正して、他の数字を「無料」にすることはできません。

テンプレートを使用してそれを行うにはどうすればよいですか?

4

1 に答える 1

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をプログラムで任意にしようとしていますか?

于 2012-11-29T16:25:58.980 に答える