写一个矩阵类cMatrix,基本要求如下: 实现构造、拷贝构造与析构函数
时间: 2024-03-07 10:46:56 浏览: 111
好的,下面是矩阵类 `cMatrix` 的代码实现,包含构造、拷贝构造和析构函数:
```cpp
class cMatrix {
private:
int rows; // 矩阵的行数
int cols; // 矩阵的列数
float* data; // 矩阵的数据指针
public:
// 默认构造函数
cMatrix() : rows(0), cols(0), data(nullptr) {}
// 带参数构造函数
cMatrix(int r, int c) : rows(r), cols(c) {
data = new float[rows * cols];
memset(data, 0, sizeof(float) * rows * cols);
}
// 拷贝构造函数
cMatrix(const cMatrix& other) : rows(other.rows), cols(other.cols) {
data = new float[rows * cols];
memcpy(data, other.data, sizeof(float) * rows * cols);
}
// 析构函数
~cMatrix() {
if (data != nullptr) {
delete[] data;
data = nullptr;
}
}
};
```
在这个实现中,我们使用了类的默认构造函数,即不带参数的构造函数,来初始化一个空矩阵。同时,我们还实现了带参数的构造函数,可以用来创建指定大小的矩阵。在拷贝构造函数中,我们使用了 `memcpy` 函数来将一个矩阵的数据复制到另一个矩阵中。在析构函数中,我们先判断数据指针是否为空,如果不为空,则释放内存,并将指针设置为 `nullptr`,以避免悬空指针的问题。
阅读全文