根据main函数中矩阵对象的定义与使用,定义相关的矩阵类Array,并利用运算符重载的方法实现矩阵的加法与输入输出操作。(为简化问题,矩阵中元素为2位以内整数,要求矩阵按照行列的格式输出,每个元素占3位宽度) 类定义: class Array /* 请在这里填写答案 */ 测试程序样例: int main() { Array arr1,arr2,arr3; cin>>arr1; cin>>arr2; cout<<arr1<<endl; cout<<arr2<<endl; arr3=arr1+arr2; cout<<arr3; return 0; } 输入样例: 1 2 3 4 5 6 7 8 9 1 11 12 输出样例: 1 2 3 4 5 6 7 8 9 1 11 12 8 10 12 5 16 18
时间: 2024-01-05 15:05:05 浏览: 61
以下是根据题目要求实现的Array类的定义和相关函数的代码:
```cpp
#include <iostream>
using namespace std;
const int MAXN = 10;
class Array {
public:
Array() {}
friend istream& operator>>(istream& in, Array& arr);
friend ostream& operator<<(ostream& out, const Array& arr);
Array operator+(const Array& arr) const;
private:
int data[MAXN][MAXN];
};
istream& operator>>(istream& in, Array& arr) {
for(int i = 0; i < MAXN; i++) {
for(int j = 0; j < MAXN; j++) {
in >> arr.data[i][j];
}
}
return in;
}
ostream& operator<<(ostream& out, const Array& arr) {
for(int i = 0; i < MAXN; i++) {
for(int j = 0; j < MAXN; j++) {
out << arr.data[i][j] << " ";
}
out << endl;
}
return out;
}
Array Array::operator+(const Array& arr) const {
Array res;
for(int i = 0; i < MAXN; i++) {
for(int j = 0; j < MAXN; j++) {
res.data[i][j] = this->data[i][j] + arr.data[i][j];
}
}
return res;
}
```
该类重载了输入输出运算符和加法运算符。其中输入和输出运算符可以直接对矩阵进行输入和输出操作。加法运算符则需要遍历两个矩阵的每个元素,将对应位置的元素相加,并存储到一个新的矩阵中。
运行测试程序后,可以得到与题目要求相符的结果。