#include <vector>
#include <string>
#include <iostream>
using namespace std;
template<class T>
class CMatrix
{
public:
CMatrix();
CMatrix(int row, int col);
CMatrix(int row, int col, T *data);
CMatrix(CMatrix& m2);
void PrintMat();
~CMatrix();
T **mp_data;
int m_row;
int m_col;
};
template<class T>
CMatrix<T>::CMatrix()
{
m_row = m_col = 0;
mp_data = NULL;
}
template<class T>
CMatrix<T>::~CMatrix<T>()
{
for (int i = 0; i < m_row; ++i)
{
delete [] mp_data[i];
mp_data[i] = NULL;
}
delete []mp_data;
mp_data = NULL;
}
template<class T>
CMatrix<T>::CMatrix(int row, int col)
{
m_row = row;
m_col = col;
mp_data = new T*[m_row];
for (int i = 0; i < m_row; ++i)
{
mp_data[i] = new T[m_col];
}
for (int i = 0; i < m_row; ++i)
{