my_matrix.h
/*作业题目:
为矩阵设计操作符重载函数,包括(第三次作业):
+
*
=
>>
<<
将类模板化(第四次作业)
作者:黄政明 21625080
时间:2018/03/29
*/
#ifndef MY_MATRIX_H
#define MY_MATRIX_H
#include <iostream>
using namespace std;
// Template matrix
//i.e.
// my_matrix(int) mat(3,2);//creates a 3x2 dimension matrix and each entry is an integer.
// my_matrix(int) mat;//a 1x1 matrix
template<typename Tdata>
class my_matrix
{
private:
int dim1;
int dim2;
//数据指针,类型为二重指针
Tdata** m_data;
public:
my_matrix(int M = 1, int N = 1, Tdata entry = 0): dim1(M), dim2(N)
{
//初始化指针数组
m_data = new Tdata*[M];
//依次初始化指针数组的元素
//指针数组,相邻指针指向的数组可以分散;数组指针,相邻指向的数组相邻
for(int i = 0; i < M; i++)
{
m_data[i] = new Tdata[N];
for(int j = 0; j < N; j++)
m_data[i][j] = entry;//初始化
}
}
/*user defined copy function
*param:
* src source instance to be copied
*/
my_matrix(const my_matrix<Tdata>& src)
: dim1(src.dim1), dim2(src.dim2)
{
m_data = new Tdata*[dim1];
//依次初始化指针数组的元