【发布时间】:2011-03-03 17:27:50
【问题描述】:
我有以下代码。 没有运算符 + 部分,代码可以正常工作。 它给了我
错误:'final[i][j] = (((matrix*)this)->matrix::mat[i][j] + matr->matrix::mat 中的 'operator=' 不匹配[i][j])'
和
错误:'std::cout 中的'operator
#include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; class matrix { private : int i,j; double mat[2][2]; public : matrix () { } void getdata(); double determinant(); matrix operator + (matrix &); }; //getdata void matrix :: getdata() { cout <<"Please provide a 2x2 matrix :"<<endl; for (int i=0;i<2;i++) { for (int j=0;j<2;j++) { cout <<"Give the elements of the matrix : "<<endl; cin >> mat[i][j]; } } } //compute determinant double matrix :: determinant () { double det; det = mat[0][0]*mat[1][1] -mat[0][1]*mat[1][0]; cout <<"The determinant of the matrix is :"<<det<<endl; } //compute addition matrix matrix ::operator +(matrix &matr) { matrix final[2][2]; for (int i=0;i<2;i++) { for (int j=0;j<2;j++) { final[i][j]=mat[i][j]+matr.mat[i][j]; } } cout <<"The addition of the two matrices is :"<<endl; for (int i=0;i<2;i++) { for (int j=0;j<2;j++){ cout << final[i][j]; } cout <<endl; } } int main() { matrix pinakas1,pinakas2; pinakas1.getdata(); pinakas2.getdata(); pinakas1.determinant(); pinakas2.determinant(); pinakas1+pinakas2; return 0; }
【问题讨论】:
-
如果函数是非 void,请记住返回值。
double matrix :: determinant ()方法应该返回一个值。 -
还请记住,拥有
operator+()并不会自动为您提供operator+=(),这可能会很烦人。
标签: c++ matrix operator-keyword