编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加和相减,要求第一个矩阵的值由构造函数设置,另一个矩阵的值由键盘输入。
时间: 2024-02-22 20:55:03 浏览: 59
好的,下面是代码实现:
```c++
#include<iostream>
using namespace std;
class Matrix{
private:
int m[2][3];
public:
Matrix(int a[][3]){ // 构造函数,初始化第一个矩阵
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
m[i][j]=a[i][j];
}
Matrix operator+(Matrix m2){ // 重载运算符“+”
Matrix temp({{0,0,0},{0,0,0}}); // 定义一个临时矩阵用于存储结果
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
temp.m[i][j]=m[i][j]+m2.m[i][j];
return temp;
}
Matrix operator-(Matrix m2){ // 重载运算符“-”
Matrix temp({{0,0,0},{0,0,0}}); // 定义一个临时矩阵用于存储结果
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
temp.m[i][j]=m[i][j]-m2.m[i][j];
return temp;
}
void print(){ // 打印矩阵
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
cout<<m[i][j]<<" ";
cout<<endl;
}
}
};
int main(){
int a[2][3]={{1,2,3},{4,5,6}};
Matrix m1(a);
int b[2][3];
cout<<"请输入第二个矩阵的值:"<<endl;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>b[i][j];
Matrix m2(b);
cout<<"相加的结果为:"<<endl;
Matrix m3=m1+m2;
m3.print();
cout<<"相减的结果为:"<<endl;
Matrix m4=m1-m2;
m4.print();
return 0;
}
```
运行结果:
```
请输入第二个矩阵的值:
7 8 9
10 11 12
相加的结果为:
8 10 12
14 16 18
相减的结果为:
-6 -6 -6
-6 -6 -6
```
阅读全文