D. 矩阵相乘(运算符重载
时间: 2023-09-20 19:05:55 浏览: 81
好的,我很乐意回答你关于矩阵相乘的问题。
在C++中,我们可以通过运算符重载来实现矩阵相乘。运算符重载是指为已有的运算符重新定义新的操作。
下面是一个矩阵相乘的运算符重载示例代码:
```c++
#include <iostream>
using namespace std;
class Matrix {
private:
int arr[3][3];
public:
Matrix() {}
Matrix(int a[3][3]) {
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
arr[i][j] = a[i][j];
}
}
}
Matrix operator*(Matrix& m) {
Matrix c;
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
c.arr[i][j] = 0;
for (int k=0; k<3; k++) {
c.arr[i][j] += arr[i][k] * m.arr[k][j];
}
}
}
return c;
}
void print() {
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[3][3] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
Matrix m1(a);
Matrix m2(b);
Matrix m3 = m1 * m2;
m3.print();
return 0;
}
```
在这个示例中,我们定义了一个Matrix类,其中包含一个3x3的数组,表示矩阵的值。我们重载了乘法运算符*,使得两个Matrix对象可以相乘。在乘法运算符的重载函数中,我们使用了一个三重循环来计算矩阵的乘积,并将结果存储在一个新的Matrix对象中。
通过这个示例代码,我们可以看到矩阵相乘的运算符重载可以很容易地实现,并且可以方便地在代码中使用。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)