2x2行列の逆の値を返すにはどうすればよいですか?クラスメソッドCalcInverseを使用します。C++、2x2行列の逆行列を返します。クラスメソッド
#include <iostream>
class Matrix2x2 {
private:
double val00; // first row, first column
double val01; // first row, second column
double val10; // second row, first colum
double val11; // second row, second column
public:
Matrix2x2();
Matrix2x2(const Matrix2x2& other); //why do you want to overide?
Matrix2x2(double a, double b, double c, double d);
double CalcDeterminant() const;
Matrix2x2 CalcInverse() const;
double Getval00() const {return val00;}
double Getval01() const {return val01;}
double Getval10() const {return val10;}
double Getval11() const {return val11;}
//non mandatory
void Print() const; //should i use this to print out the inverse value?
};
#endif /* SUBMISSION_MATRIX2X2_HPP_ */
//my useclass method below
Matrix2x2::Matrix2x2(){
val00 = 0.0; // first row, first column
val01 = 0.0; // first row, second column
val10 = 0.0; // second row, first colum
val11 = 0.0; // second row, second column
}
Matrix2x2::Matrix2x2(const Matrix2x2& other){ //copy constructer
val00 = other.val01;
val01 = other.val01;
val10 = other.val10;
val11 = other.val11;
}
Matrix2x2::Matrix2x2(double a, double b, double c, double d){
val00 = a;
val01 = b;
val10 = c;
val11 = d;
}
double Matrix2x2::CalcDeterminant() const{
double Determinant = val00*val11-val01*val10;
return Determinant;
}
Matrix2x2 Matrix2x2::CalcInverse() const{ // is this the correct way to make inverse method?
Matrix2x2 other;
double Determinant = val00*val11-val01*val10;
other.val00 = Determinant*val11;
other.val01 = Determinant*val01;
other.val10 = Determinant*val10;
other.val11 = Determinant*val00;
return other;
}
void Print() const{
?
}
私は逆の値をプリントアウトするmain.cppにファイルを使用することができますが、私はこれを行う方法を確認していません。プライベートメンバーの値を取得するだけで、val00..etc。そして行列式。私のuseclass.cppファイル。最初の方法はプライベートメンバーです。 私は正しい道にいるといいですね。
@ Avis - コピーコンストラクタのエラー: 'val00 = other.val01'は間違っています。 'val00 = other.val00' – max66
ゼロで除算しないことを確認してください。 – Matsmath