写一个矩阵类cMatrix,基本要求如下: 实现构造、拷贝构造与析构函数,支持任意大小的矩阵:行数和列数可以动态设置(不用修改代码)
时间: 2024-03-22 07:37:52 浏览: 132
测量程序设计两周课程设计
好的,这是一个简单的 C++ 矩阵类 cMatrix 的实现,满足你的要求:
```c++
class cMatrix {
private:
int m_rows;
int m_cols;
int** m_data;
public:
cMatrix(int rows, int cols) : m_rows(rows), m_cols(cols) {
m_data = new int*[rows];
for (int i = 0; i < rows; ++i) {
m_data[i] = new int[cols];
}
}
cMatrix(const cMatrix& other) : m_rows(other.m_rows), m_cols(other.m_cols) {
m_data = new int*[m_rows];
for (int i = 0; i < m_rows; ++i) {
m_data[i] = new int[m_cols];
for (int j = 0; j < m_cols; ++j) {
m_data[i][j] = other.m_data[i][j];
}
}
}
~cMatrix() {
for (int i = 0; i < m_rows; ++i) {
delete[] m_data[i];
}
delete[] m_data;
}
};
```
这个类有三个成员变量 `m_rows` 和 `m_cols` 表示矩阵的行数和列数,`m_data` 是一个指向指针的指针,用于存储矩阵的数据。构造函数 `cMatrix(int rows, int cols)` 是一个带参数的构造函数,用于初始化这些成员变量并动态分配内存来存储矩阵数据。拷贝构造函数 `cMatrix(const cMatrix& other)` 是另一个构造函数,用于从一个已有的矩阵对象中复制数据并创建一个新的矩阵对象。析构函数 `~cMatrix()` 用于释放动态分配的内存。
由于这个类支持任意大小的矩阵,因此你可以使用不同的行数和列数来创建和复制矩阵对象,而不需要修改代码。
阅读全文