编写矩阵类--封装矩阵的运算(加、减、乘、转置、...)

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:52:30
(1) 矩阵的大小由键盘输入的数据决定,随机产生两矩阵数据;
(2) 每个运算用一个方法实现,分别提供静态方法和实例方法;
(3) 定义异常,如果不能进行正确运算(如两矩阵大小不匹配),抛出异常。

class CMatrix
{
public:
CMatrix(){m_pData = 0;}
CMatrix(int rows, int cols) : m_iRows(rows), m_iCols(cols)
{
pData = new double[m_iRows * m_iCols];
//Generate data here
}
~CMatrix()
{
if(pData) delete []pData;
}
CMatrix& operator=(CMatrix& other);
double* operator[](int row)
{
return m_pData + row*m_iCols;
}
CMatrix& operator+(CMatrix& mat);
CMatrix& operator-(CMatrix& mat);
CMatrix& operator*(CMatrix& mat);
CMatrix& operator*(double c);
CMatrix& operator/(double c);
CMatrix& trans();//transpose
CMatrix& inv();//inverse
double det();//determinant

private:
int m_iRows, m_iCols;
double *m_pData;
}