重载函数矩阵相加
时间: 2023-07-26 22:08:19 浏览: 34
可以定义一个重载函数,用于矩阵相加。假设我们有两个矩阵A和B,它们的大小都为m x n。重载函数可以定义如下:
```
Matrix operator+(const Matrix& A, const Matrix& B) {
// 检查矩阵A和B的大小是否相同
if (A.rows() != B.rows() || A.cols() != B.cols()) {
throw std::invalid_argument("Matrices are not of the same size");
}
// 创建一个新的矩阵,存储矩阵相加的结果
Matrix C(A.rows(), A.cols());
// 对每个元素执行矩阵相加操作
for (int i = 0; i < A.rows(); i++) {
for (int j = 0; j < A.cols(); j++) {
C(i, j) = A(i, j) + B(i, j);
}
}
return C;
}
```
在上面的代码中,我们首先检查矩阵A和B的大小是否相同,如果不同则抛出一个异常。然后,我们创建一个新的矩阵C,它的大小与矩阵A和B相同。接下来,我们对每个元素执行矩阵相加操作,并将结果存储在矩阵C中。最后,我们返回矩阵C。
这个重载函数可以让我们像下面这样使用矩阵相加:
```
Matrix A(2, 2);
A(0, 0) = 1;
A(0, 1) = 2;
A(1, 0) = 3;
A(1, 1) = 4;
Matrix B(2, 2);
B(0, 0) = 4;
B(0, 1) = 3;
B(1, 0) = 2;
B(1, 1) = 1;
Matrix C = A + B;
```
在上面的代码中,我们首先创建了两个2 x 2的矩阵A和B,并将它们初始化为一些值。然后,我们使用重载的运算符+将它们相加,并将结果存储在矩阵C中。