C++-------深拷贝
Posted god-for-speed
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++-------深拷贝相关的知识,希望对你有一定的参考价值。
test t2(t1);
当出现有类似拷贝时,若类中数据成员涉及指针,
则应在类中显示定义深拷贝函数,即在拷贝函数中为指针开辟空间再进行拷贝赋值
若只是使用默认的拷贝构造函数的话,
因为此时t2的指针与t1的指针同时指向同一个地址,而当t2析构时,此地址空间被释放,再到t1析构时,已经不存在那个公共的地址了,
所以会出现错误。
解决办法是必须提供深拷贝构造函数,即在拷贝函数中为指针开辟空间再进行拷贝赋值,这时当t2析构时,只是析构自己指针所指向的地址空间,
与t1地址空间不同,但内容都相同,因为是深拷贝。
以上是关于C++-------深拷贝的主要内容,如果未能解决你的问题,请参考以下文章