拷贝构造函数是一种特殊的构造函数,它在创建对象时使用已存在的对象进行初始化,以此来创建一个新的对象,这个新对象与原有对象具有相同的值和属性。拷贝构造函数通常用于传递参数或返回对象,以及在动态内存分配期间创建副本。
下面是一个简单的示例,说明如何定义一个拷贝构造函数:
class MyClass {
public:
// 构造函数
MyClass(int x) {
data = new int;
*data = x;
}
// 拷贝构造函数
MyClass(const MyClass& other) {
data = new int;
*data = *(other.data);
}
private:
int* data;
};
在这里,我们定义了一个叫做MyClass的类,并声明了一个构造函数和一个拷贝构造函数。在拷贝构造函数中,我们使用引用类型参数“other”来指向要复制的对象,并且在新对象中创建一个新的int类型数据成员。“*data = *(other.data)”从“other”的数据成员中复制值到新对象的数据成员中,以确保两个对象具有相同的值。