三大函数:拷贝构造、拷贝赋值、析构
只要你的类带有指针,则一定不能用编译器给的默认拷贝函数
拷贝构造函数用于创建新对象并初始化。
MyList<int> mylistCopy = *mylistPtr; // 通过拷贝构造函数创建新对象
拷贝赋值运算符用于将一个已存在对象的值赋给另一个已存在对象
MyList<int> mylistCopy; mylistCopy = *mylistPtr; // 通过拷贝赋值运算符赋值
三大函数的定义:
三大函数的使用:
使用浅拷贝的危害:
浅拷贝在复制过程中,仅复制对象的内存地址或其基本属性值,而不是其深层关联的数据结构。对于包含指针或动态分配内存的对象,浅拷贝不会分配新的内存,而是直接复制指针地址。
C++中默认的拷贝赋值即为浅拷贝,因此必须要有copy ctor copy op=
实现深拷贝
5、1拷贝构造函数
构造函数的形参是 const Class & ,是自身
5、2拷贝赋值
重写操作符 operator=
5、3析构函数
String::~String() {delete[] m_data;
}
//析构函数的作用:释放构造函数申请的内存空间->new,防止内存泄漏