矩阵加减【运算符重载】【类模板】

类模板的初级应用

#include<iostream>

using namespace std;


template<class T>//类模板
class Matrix
{
private:
T a[100][100];
int wide,length;
public:
Matrix(int w,int l)//构造函数
{
this->wide=w;
this->length=l;
for(int i=0;i<w;i++)
{
for(int j=0;j<l;j++)
{
a[i][j]=0;
}
}
}
void set()//输入数组元素
{
for(int i=0;i<this->wide;i++)
for(int j=0;j<this->length;j++)
cin>>a[i][j];
}
void output()//输出数组
{
for(int i=0;i<this->wide;i++)
{
for(int j=0;j<this->length;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
Matrix operator+(Matrix & m)
{
Matrix M1(this->wide,this->length);
for(int i=0;i<this->wide;i++)
{
for(int j=0;j<this->length;j++)
M1.a[i][j]=a[i][j]+m.a[i][j];
}
return M1;
}
Matrix operator-(Matrix & m)
{
Matrix M2(this->wide,this->length);
for(int i=0;i<this->wide;i++)
{
for(int j=0;j<this->length;j++)
M2.a[i][j]=a[i][j]-m.a[i][j];
}
return M2;
}//重载”-”号
};//重载“+”号
int main()//主函数
{
int w,l;
cout<<"请输入你的矩阵大小(长,宽):";
cin>>w>>l;
Matrix<int> m1(w,l),m2(w,l),m3(w,l);
cout<<"请输入第一个矩阵:"<<endl;
m1.set();
cout<<"请输入第二个矩阵:"<<endl; 
m2.set();
m3=m1+m2;
cout<<"两矩阵相加结果:"<<endl;
m3.output();
m3=m1-m2;
cout<<"两矩阵相减结果:"<<endl;
    m3.output();
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值