题目:重载“+”、“-”运算符实现矩阵的相加和相减 •(1)定义表示矩阵的Matrix22类,为了方便,假设我们只关注2×2矩阵,每个元素都是double型数据; •(2) Matrix22类除了数据成员外,还有成员函数display()用于显示这个矩阵的值; •(3)将“+”、“-”运算符重载成为Matrix22类的成员函数,实现2×2矩阵的加减,返回值也是Matrix22类的对象; •(4)主函数中,利用重载后的运算符实现下面两个运算,并在屏幕上显示计算结果
时间: 2024-02-20 15:56:47 浏览: 48
Matrix矩阵类
好的,下面是代码实现:
```cpp
#include<iostream>
using namespace std;
class Matrix22
{
public:
Matrix22(double a, double b, double c, double d):m1(a), m2(b), m3(c), m4(d) {} //构造函数
void display(); //显示矩阵值
Matrix22 operator+(const Matrix22& m); //重载加号运算符
Matrix22 operator-(const Matrix22& m); //重载减号运算符
private:
double m1, m2, m3, m4;
};
void Matrix22::display()
{
cout << "[" << m1 << "," << m2 << "]" << endl;
cout << "[" << m3 << "," << m4 << "]" << endl;
}
Matrix22 Matrix22::operator+(const Matrix22& m)
{
Matrix22 temp(m1+m.m1, m2+m.m2, m3+m.m3, m4+m.m4); //创建一个新的矩阵对象
return temp; //返回新的矩阵对象
}
Matrix22 Matrix22::operator-(const Matrix22& m)
{
Matrix22 temp(m1-m.m1, m2-m.m2, m3-m.m3, m4-m.m4); //创建一个新的矩阵对象
return temp; //返回新的矩阵对象
}
int main()
{
Matrix22 A(1,2,3,4);
Matrix22 B(5,6,7,8);
Matrix22 C = A + B; //计算A+B
Matrix22 D = A - B; //计算A-B
cout << "A:" << endl;
A.display();
cout << "B:" << endl;
B.display();
cout << "A+B:" << endl;
C.display();
cout << "A-B:" << endl;
D.display();
return 0;
}
```
以上代码中,我们定义了一个名为`Matrix22`的类,其中包含四个私有成员变量`m1`、`m2`、`m3`、`m4`,分别表示矩阵中的四个元素。我们还定义了一个构造函数用于初始化矩阵,以及一个`display()`成员函数用于显示矩阵的值。接下来,我们重载了加号运算符`+`和减号运算符`-`,分别实现了两个矩阵的相加和相减,并返回一个新的`Matrix22`对象。
在主函数中,我们创建了两个`Matrix22`对象`A`和`B`,并分别将它们相加和相减,将结果保存在新的`Matrix22`对象`C`和`D`中,并通过调用`display()`函数将结果输出到屏幕上。
阅读全文