Xây dựng một lớp Matrix cho các ma trận?

Anh ơi giúp em bài tập này: Xây dựng một lớp Matrix cho các ma trận bao gồm một constructor mặc định, hàm xuất ma trận, nhập ma trận từ bàn phím, cộng hai ma trận, trừ hai ma trận và nhân hai ma trận.
còn đây là code của em ! em mới học lập trình em nhiều câu lệnh em còn chưa rõ mong anh giúp em với !

using namespace std;
class Matrix
{
public:
	/*int hang,cot;
	Matrix (){ hang=0;cot=0;}*/
	/*int **Mang= new int*[hang];
	for(int i=0;i<hang;i++)
		Mang[i]= new int[cot];}
	*/
	void InMang(int Matran[][9],int hang, int cot)  {
		for(int i=0;i<hang;i++)   
			for(int j=0;j<cot;j++) 
				cout<<Matran[i][j];
			
		
	}

	void Nhap(int Matran[][4],int hang, int cot)
	{     
		cout<<"nhap so hang =:";cin>>hang;cout<<endl;
		cout<<" nhap so cot= ";cin>>cot;
		cout << "nhap "<<hang*cot<<" phan tu"<<endl;
		for (int i=0;i<hang;i++)
	for(int j=0;j<cot;j++)
		cin>>Matran[i][j];
	}
	void Conghaimatran()  {

	}
	void NHanMT(){}
};




void main()   {
	int hang=0,cot=0;
	int **Matran= new int*[hang];
	for(int i=0;i<hang;i++)
		Matran[i]= new int[cot];

	Matrix bien;
	bien.Nhap(Matran,hang,cot);



		for(int i=0;i<hang;i++)
	delete[] Matran[i];
		delete[] Matran;
	
		system("pause");}

em khong biet lam the nao nua mong anh giup em voi

lớp của mình thế này, thừa 1 số hàm do bài tập của mình yêu cầu thêm.
nhưng hình như mình làm bị sai ý nghĩa code rồi ấy.
bạn có thể tham khảo thuật toán trong hàm
http://daynhauhoc.com/t/co-nen-dung-con-tr-this

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?