GeneralMatrix GeneralMatrix::operator * (const GeneralMatrix& other) const { int i,j,k; GeneralMatrix result(this->nRow(),other.nCol()); if(other.nRow()!=this->nCol()) { for (i=0;i<result.nRow();i++) for (j=0;j<result.nCol();j++) result.GetElemP(i,j)->val = ERRORVAL; return result; } for (i=0;i<this->nRow();i++) //矩阵相乘的计算 { for(j=0;j<other.nCol();j++) { for(k = 0; k < other.nRow(); k++) { if ((this->GetElem(i,k)!=0)&&(other.GetElem(k,j)!=0)) { result[i][j] += this->GetElem(i,k) * other.GetElem(k,j); } } } } return result; }
////////////////////////////////////////////////////////////////////// // 重载运算符==,判断矩阵是否相等 // // 参数: // 1. const GeneralMatrix& other - 用于比较的矩阵 // // 返回值:BOOL 型,两个矩阵相等则为TRUE,否则为FALSE ////////////////////////////////////////////////////////////////////// bool GeneralMatrix::operator==(const GeneralMatrix& other) const { // 首先检查行列数是否相等 if (this->nCol() != other.nCol() || this->nRow() != other.nRow()) return FALSE; for (int i=0; i<nRow(); ++i) { for (int j=0; j<nCol(); ++j) { if (this->GetElem(i,j)!=other.GetElem(i,j)) return FALSE; } } return TRUE; }