c++的深拷贝和浅拷贝

1.在使用一个对象对另一个对象初始化或赋值时,若对象包含指针成员变量,则需要手动的编写拷贝构造函数实现深拷贝,调用编译器的内部默认的拷贝构造函数则只能实现浅拷贝操作。通过蓝色操作:在拷贝指针的同时为指针重新分配内存空间。
c++的深拷贝和浅拷贝
2.通过深拷贝(显示重载=操作符,或显示定义拷贝构造函数)解决浅拷贝出现的问题
c++的深拷贝和浅拷贝
c++的深拷贝和浅拷贝
3.使用默认的拷贝构造函数时:
析构的时候,内部Name中有指针,那么obj1和obj2中的m_p指针会指向同一个地址(即abcdefg对象),释放两次,出现core dump
应该通过深拷贝(重载=,或显式定义拷贝构造函数)来解决浅拷贝出现的问题

转载自:
https://www.cnblogs.com/jefy/p/9401050.html