C++ 重载赋值运算符
Last updated on April 1, 2021 am
C++ 重载赋值运算符
如果在含有指针数据成员的类中没有重载赋值运算符,赋值时进行浅复制,导致被赋值对象与赋值对象指向同一地址,析构、操作数据成员时会出现不符合期望的结果,因此需要进行深复制。但仅进行深复制仍然是不够完善的。
1 |
|
上面的代码首先释放 Demo 类中的 ptr 指针,但在遇到 assigned = assigned;
这种自赋值情况时,将会错误地释放掉指针所指向的内存,造成崩溃。在开始前进行判断可避免这一情况:
1 |
|
C++ 重载赋值运算符
https://zhaozihanzzh.github.io/2021/03/31/assignmentoverride/