OK Matrixクラスの+ =と - =演算子をオーバーロードしたい。
は今、2つの行列を合計または減算するために、我々は両方の行列の各値を反復処理し、加算または減算する必要があるので、それは次のようにいくつかのことになります:あなたは両方の演算子を見ることができるよう、「C++ファンクタの使用、コードの重複回避
Matrix& Matrix::operator+= (const Matrix& M){
for (int indexR = 0; indexR < rows; ++indexR)
for (int indexC = 0; indexC < cols; ++indexC)
Mat_p[indexR][indexC] += M[indexR][indexC];
}
Matrix& Matrix::operator-= (const Matrix& M){
for (int indexR = 0; indexR < rows; ++indexR)
for (int indexC = 0; indexC < cols; ++indexC)
Mat_p[indexR][indexC] -= M[indexR][indexC];
}
+ = "と" - = "は同じ構造を持っています。つまり、基本的に"ルール "と呼ばれるものは、コードの重複を避けることです。
このような重複を避け、コードを有効にするにはどうすればよいですか?
この小さなコードの複製は実際の問題ではありません。 – Brian
@Brianまあ、それでも私はそれを避けたいと思います。(それは単なる例です...) –