编写一个矩阵类,通过成员函数重载运算符实现矩阵的加法,数乘,乘法。
#include <iostream>
using namespace std;
class Matrix
{
private:
int v[2][2];
public:
Matrix()
{
int i,j;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
v[i][j]=0;
}
Matrix(int a[2][2])
{
int i,j;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
v[i][j]=a[i][j];
}
void print()
{
int i,j;
for(i=0; i<2; i++)
{
for(j=0; j<2; j++)
{
cout<<v[i][j]<<" ";
}
cout<<" "<<endl;
}
cout<<" "<<endl;
}
Matrix operator+(Matrix t)
{
Matrix temp;
int i,j;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
temp.v[i][j]=v[i][j]+t.v[i][j];
return temp;
}
Matrix operator*(int a)//数乘
{
Matrix temp;
int i,j;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
temp.v[i][j]=v[i][j]*a;
return temp;
}
Matrix operator*(Matrix t)//矩阵乘
{
Matrix temp;
int i,j,k;
for(i=0; i<2; i++)
for(j=0; j<2; j++)
for(k=0; k<2; k++)
{
temp.v[i][j]+=v[i][k]*t.v[k][j];
}
return temp;
}
};
int main()
{
int v1[2][2] = {1,2,3,4};
int v2[2][2] = {1,2,3,4};
Matrix m1(v1), m2(v2);
m1.print();
m2.print();
Matrix m3 = m1 + m2;
m3.print();
Matrix m4 = m3 * 10;
m4.print();
Matrix m5 = m1 * m2;
m5.print();
return 0;
}