有两个矩阵a和b,均为3行4列。重载运算符“++”(如a++和++a,表示将矩阵中的每个元素都加1)。
时间: 2023-11-22 07:54:04 浏览: 40
可以通过重载前置(++a)和后置(a++)自增运算符实现该功能。以下是示例代码:
```cpp
#include <iostream>
class Matrix {
private:
int data[3][4];
public:
Matrix() {}
Matrix(int init) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
data[i][j] = init;
}
}
}
Matrix operator++() {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
++data[i][j];
}
}
return *this;
}
Matrix operator++(int) {
Matrix temp(*this);
++(*this);
return temp;
}
friend std::ostream& operator<<(std::ostream& os, const Matrix& m) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
os << m.data[i][j] << " ";
}
os << std::endl;
}
return os;
}
};
int main() {
Matrix a(0);
Matrix b(1);
std::cout << "a:\n" << a << std::endl;
std::cout << "b:\n" << b << std::endl;
++a;
b++;
std::cout << "a:\n" << a << std::endl;
std::cout << "b:\n" << b << std::endl;
return 0;
}
```
输出结果为:
```
a:
0 0 0 0
0 0 0 0
0 0 0 0
b:
1 1 1 1
1 1 1 1
1 1 1 1
a:
1 1 1 1
1 1 1 1
1 1 1 1
b:
2 2 2 2
2 2 2 2
2 2 2 2
```
在上面的代码中,我们定义了一个名为Matrix的类,其中包含一个3x4的数组data。我们重载了前置自增运算符++和后置自增运算符++,并通过这些运算符将矩阵中的每个元素都加1。最后,我们在主函数中创建了两个矩阵a和b,并对它们进行了自增运算,输出了结果。