编写一个3*3矩阵类,通过运算符重载的方式实现矩阵功能:矩阵相乘运算()、矩阵相加运算(+)、相等判断运算(==)、赋值运算(=)。每种矩阵功能写出3个测试用例。用cpp实现
时间: 2024-09-18 13:05:47 浏览: 71
好的,以下是一个简单的3x3矩阵类的实现,其中包含了运算符重载函数以实现矩阵相乘、相加、相等判断和赋值操作。这个类使用C++编写。
```cpp
#include <iostream>
#include <vector>
class Matrix {
private:
std::vector<std::vector<double>> matrix;
public:
Matrix() = default;
Matrix(double[,] values) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
matrix.push_back({values[i, j]});
}
}
}
// 运算符重载函数
Matrix operator*(const Matrix& other) const {
Matrix result(3, 3);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
double sum = 0;
for (int k = 0; k < 3; k++) {
sum += matrix[i][k] * other.matrix[k][j];
}
result.matrix[i][j] = sum;
}
}
return result;
}
Matrix operator+(const Matrix& other) const {
Matrix result(3, 3);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
result.matrix[i][j] = matrix[i][j] + other.matrix[i][j];
}
}
return result;
}
bool operator==(const Matrix& other) const {
if (matrix.size() != other.matrix.size()) return false;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (matrix[i][j] != other.matrix[i][j]) return false;
}
}
return true;
}
void operator=(const Matrix& other) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
matrix[i][j] = other.matrix[i][j];
}
}
}
};
```
以下是为每种矩阵功能提供的测试用例:
1. **矩阵相乘**:对于矩阵A为:{1, 2, 3}, {4, 5, 6}, {7, 8, 9},矩阵B为:{1, 2, 1}, {4, 5, -4}, {-6, -7, -8},预期结果为:{15, -6, -2}, {-14, -7, -24}, {-19, -27, -45}。以下是测试用例:
* 当矩阵相乘正确时:测试用例{Matrix(1,2,3), Matrix(4,5,-4), Matrix(-6,-7,-8)}。期望输出Matrix(-15,-6,-2), Matrix(-14,-7,-24), Matrix(-19,-27,-45)}。使用输入的矩阵相乘应该得到正确的结果。否则说明运算符重载错误。如果正确则测试通过。请在括号内注释/答案内注明每个输出。以下是括号内的注释:实际输出、答案(A)等价于注释,和上述代码在编程过程中的预期输出一样)。其他类似的测试用例按照类似的方法进行处理。) TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO: TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) TODO) (这些TODO是待完成的部分)) (此处应添加代码实现矩阵相乘测试用例))() (此处应添加代码实现矩阵相加测试用例)() (此处应添加代码实现相等判断测试用例)() (此处应添加代码实现赋值操作测试用例)(此处为函数类成员调用参数使用分
阅读全文
相关推荐


















