www.pudn.com > LJ_Pre_Modified_1.4.rar > Matrix.h


// Matrix.h: interface for the CMatrix class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_MATRIX_H__27C7BED9_314A_4D5E_BAD3_801093E96309__INCLUDED_) 
#define AFX_MATRIX_H__27C7BED9_314A_4D5E_BAD3_801093E96309__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CMatrix   
{ 
 
 
	private: 
		int  row; // 矩阵的行数 
		int  col; // 矩阵的列数 
		int  n;  // 矩阵元素个数 
		double* mtx; // 动态分配用来存放数组的空间 
		 
	 public: 
		 CMatrix(int row=1, int col=1);     // 带默认参数的构造函数 
		 CMatrix(int row, int col, double mtx[]);   // 用数组创建一个矩阵 
		 CMatrix(const CMatrix &obj);      // copy构造函数 
		 ~CMatrix() { delete[] this->mtx; }      
		  
		 //void print()const;                        // 格式化输出矩阵 
		 int  getRow()const { return this->row; }  // 访问矩阵行数 
		 int  getCol()const { return this->col; }  // 访问矩阵列数 
		 int  getN()const   { return this->n;   }  // 访问矩阵元素个数 
		 double* getMtx()const { return this->mtx; }  // 获取该矩阵的数组 
		  
		 // 用下标访问矩阵元素 
		 double  get(const int i, const int j);//const;  
		 // 用下标修改矩阵元素值 
		 void  set(const int i, const int j, const double e);  
		 // 重载了一些常用操作符,包括 +,-,x,=,负号,正号, 
		 // A = B 
		 CMatrix &operator= (const CMatrix &obj); 
		 // +A 
		 CMatrix  operator+ ()const { return *this; } 
		 // -A 
		 CMatrix  operator- ()const; 
		 // A + B 
		 friend  CMatrix  operator+ (const CMatrix &A, const CMatrix &B); 
		 // A - B 
		 friend  CMatrix  operator- (const CMatrix &A, const CMatrix &B); 
		 // A * B 两矩阵相乘 
		 friend  CMatrix  operator* (CMatrix &A, CMatrix &B); 
		 // a * B 实数与矩阵相乘 
		 friend  CMatrix  operator* (double &a, CMatrix &B); 
		 // A 的转置 
		 //friend  CMatrix  trv(const CMatrix &A); 
		 // A 的行列式值,采用列主元消去法 
		 // 求行列式须将矩阵化为三角阵,此处为了防止修改原矩阵,采用传值调用 
		 //friend  double  det(CMatrix A); 
		 // A 的逆矩阵,采用高斯-若当列主元消去法 
		 //friend  CMatrix  inv(CMatrix A); 
/* 
public: 
	//CMatrix();								// 默认的构造函数 
	virtual ~CMatrix(); 
*/ 
}; 
 
 
 
#endif // !defined(AFX_MATRIX_H__27C7BED9_314A_4D5E_BAD3_801093E96309__INCLUDED_)