用C++实现以下要求:(1)建立新文件,头文件和源文件,并给出合适的文件名;(2)在新文件中编写代码,开发一个4x4的矩阵类,定义相应的构造函数;(3)实现矩阵相加、相减;(4)实现矩阵数据的格式输出;(5)main函数
时间: 2024-09-20 22:13:13 浏览: 47
为了满足您的需求,我们将创建一个名为`Matrix`的C++类,包括头文件(Matrix.h)和源文件(Matrix.cpp)。以下是每个步骤的代码示例:
**Matrix.h(头文件)**
```cpp
#ifndef MATRIX_H
#define MATRIX_H
#include <iostream>
#include <vector>
class Matrix {
public:
// 构造函数,初始化4x4矩阵
Matrix(int rows = 4, int cols = 4);
// 矩阵相加
Matrix operator+(const Matrix& other) const;
// 矩阵相减
Matrix operator-(const Matrix& other) const;
// 数据输出
void print() const;
private:
std::vector<std::vector<int>> data;
};
#endif // MATRIX_H
```
**Matrix.cpp(源文件)**
```cpp
#include "Matrix.h"
// 构造函数
Matrix::Matrix(int rows, int cols) : data(rows, std::vector<int>(cols, 0)) {}
// 矩阵相加
Matrix Matrix::operator+(const Matrix& other) const {
if (data.size() != other.data.size()) {
throw std::invalid_argument("Matrices must have the same dimensions for addition.");
}
Matrix result(data);
for (int i = 0; i < data.size(); ++i) {
for (int j = 0; j < data[i].size(); ++j) {
result.data[i][j] += other.data[i][j];
}
}
return result;
}
// 矩阵相减
Matrix Matrix::operator-(const Matrix& other) const {
if (data.size() != other.data.size()) {
throw std::invalid_argument("Matrices must have the same dimensions for subtraction.");
}
Matrix result(data);
for (int i = 0; i < data.size(); ++i) {
for (int j = 0; j < data[i].size(); ++j) {
result.data[i][j] -= other.data[i][j];
}
}
return result;
}
// 数据输出
void Matrix::print() const {
for (const auto& row : data) {
for (int value : row) {
std::cout << value << ' ';
}
std::cout << '\n';
}
std::cout << std::endl;
}
int main() {
Matrix m1(4, 4), m2(4, 4); // 初始化两个4x4矩阵
m1.print(); // 输出初始值
m2.print(); // 输出初始值
// 相加并打印结果
Matrix sum = m1 + m2;
sum.print();
// 相减并打印结果
Matrix diff = m1 - m2;
diff.print();
return 0;
}
```
现在,您已经有了包含矩阵类及其操作的完整C++程序。运行`main`函数会创建两个4x4矩阵,并展示它们的相加和相减结果。
阅读全文