📄 mathmetric.h
字号:
#ifndef _MATH_METRIC_H_
#define _MATH_METRIC_H_
#include "stdlib.h"
#include "math.h"
class MathMetric
{
private:
//矩阵的行数
unsigned int line;
//矩阵的列数
unsigned int clum;
//矩阵的元素数据的开头指针
double* data;
public://下面为构造函数和析构函数
//空构造函数
MathMetric();
//另外一个构造函数
MathMetric(double*,unsigned int,unsigned int);
//析构函数,主要完成内存的释放
virtual ~MathMetric();
public://以下全为静态函数,可以不构造类直接调用
static double* add(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
static double* sub(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
static double* multiple(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
static double* devide(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
static bool inverse(double* metric1,int n);
static bool reverse(double* data,unsigned int line,unsigned int colum);
public://重载"+","-","*","/"等各种运算符,以后可以像普通数据类型那样对矩阵进行运算
MathMetric & operator *(MathMetric&);
MathMetric & operator -(MathMetric&);
MathMetric & operator -(void);
MathMetric & operator +(MathMetric &);
MathMetric & operator /(MathMetric &);
public://以下为矩阵类的各种属性的获取和设置成员函数
//求矩阵的转置,此作为内部成员函数
bool reverse(void);
//获取数据
void set_data(double*);
double* get_data(void);
void set_colum(unsigned int);
void set_line(unsigned int);
unsigned get_colum(void);
unsigned get_line(void);
bool print();
};
/**********************************************************
函数名:operator *
功能:重载一个常数与矩阵的"*"运算符
入口参数:k:一个基本数据类型 Metric1:一个任意矩阵
出口参数:*result:一个矩阵,它存储了"*"符号的运算结果
说明:将些函数在头文件中实现,而不是在单独的C文件中实现是有
原因的,这样可以不对每种情况具现化,可以杜绝连接错误
**********************************************************/
template <class Type>
MathMetric & operator *(Type k,MathMetric &Metric1)
{
MathMetric *result;
double *res;
res=Metric1.get_data();
result=new MathMetric(res,Metric1.get_line(),Metric1.get_colum());
res=result->get_data();
for(unsigned int i=0;i<Metric1.get_colum()*Metric1.get_line();i++)
res[i]*=k;
return *result;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -