对象克隆

牧云@^-^@ 提交于 2019-12-04 15:44:52

    在C++中,有一个特殊的构造函数叫做拷贝构造函数,用于解决对象间浅层拷贝存在的问题。

    C++中每一个类会有一个默认的拷贝构造函数,使用默认的拷贝构造函数实现的是对象的浅层拷贝,大致的工作就是将一个对象的“成员属性”值逐一复制到另外一个对象。默认的拷贝构造函数能够满足大多数的使用需求,但如果类的成员属性中含有指针变量,使用默认的拷贝构造函数就会出现“指针悬挂”的问题。

    什么是指针悬挂?简单的说是这么个情况:某个类A的成员属性中含有指针变量p,通过默认的拷贝构造函数由对象a1创建一个对象a2,由于默认的拷贝构造函数实现的是数值的简单复制,所以最终对象a1和a2的指针变量将具有相同的数值,即指向相同的内存空间,如果某个对象将这个空间释放,另一个对象并不知情,继续使用这个空间......


 

 

    Java中没有指针变量,也存在类似的问题。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!