拷贝构造函数c++实现
时间: 2023-05-28 14:04:46 浏览: 104
拷贝构造函数是一种特殊的构造函数,它用于创建一个新对象,并将其初始化为另一个同类型对象的副本。下面是一个示例实现:
```
class MyClass {
public:
MyClass() : m_data(nullptr), m_size(0) {}
MyClass(const MyClass& other) : m_data(nullptr), m_size(0) {
// 拷贝构造函数实现
if (other.m_data != nullptr && other.m_size > 0) {
m_data = new int[other.m_size];
m_size = other.m_size;
for (int i = 0; i < m_size; ++i) {
m_data[i] = other.m_data[i];
}
}
}
~MyClass() {
if (m_data != nullptr) {
delete[] m_data;
m_data = nullptr;
m_size = 0;
}
}
private:
int* m_data;
int m_size;
};
```
在上面的代码中,我们定义了一个名为`MyClass`的类,并将其数据成员`m_data`和`m_size`初始化为`nullptr`和`0`。然后,我们实现了一个拷贝构造函数,它使用`other`对象的数据成员来初始化新对象。特别地,我们使用`new`关键字动态分配了一个新的`int`数组,将`other`对象的数据复制到该数组中,并将其大小存储在`m_size`中。最后,我们在析构函数中释放了`m_data`指向的内存。
阅读全文