/*
矩阵加法法则
*/
/*
有两个矩阵a和b,均为2行3列。求两个矩阵之和。
重载运算符“ + ”,使之能用于知阵相加。
如:c = a + b。
*/
#include <iostream>
using namespace std;
//矩阵类
class Matrix {
public:
//无参构造函数
Matrix();
//输入矩阵
void input();
//输出矩阵
void display();
//使用重载操作符operator重载运算符‘+’
friend Matrix operator+(Matrix& a, Matrix& b);
private:
//2行3列矩阵存储在该二维数组中
int a[2][3] = {0};
};
Matrix::Matrix() {
}
void Matrix::input() {
int i, j;
cout << "输入矩阵():" << endl;
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
cin >> a[i][j];
}
void Matrix::display() {
int i, j;
cout << "此矩阵为:" << endl;
//逐行打印
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
cout << a[i][j] << " ";
}
//每行后面加回车
cout << endl;
}
}
//重载 ‘+’
Matrix operator+(Matrix& a, Matrix& b) {
//new一个矩阵对象c
Matrix c;
int i, j;
//把两个数组的值逐行按照顺序对应相加后赋值给c的数组
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++) {
c.a[i][j] = a.a[i][j] + b.a[i][j];
}
//返回一个矩阵类型,c.a[][]即相加后的结果
return c;
}
int main() {
Matrix a, b, c;
a.input();
b.input();
c = a + b;
c.display();
return 0;
}