复制构造函数产生浅复制的根本原因在于,用户自定义的构造函数内部做了分配内存空间的工作,这是默认复制复制函数无法完成的工作。然而在析构函数执行时,却同样的要求两者声明的变量都要释放内存。最终的结果便是浅复制的产生。而如果要解决这个问题就必须让复制构造函数实现与构造函数同样的工作,及用户自定义一个具有相同功能的复制构造函数。(析构已经不存在的内存,必然导致错误)
深浅复制产生的根本原因
最新推荐文章于 2022-05-08 02:41:21 发布
复制构造函数产生浅复制的根本原因在于,用户自定义的构造函数内部做了分配内存空间的工作,这是默认复制复制函数无法完成的工作。然而在析构函数执行时,却同样的要求两者声明的变量都要释放内存。最终的结果便是浅复制的产生。而如果要解决这个问题就必须让复制构造函数实现与构造函数同样的工作,及用户自定义一个具有相同功能的复制构造函数。(析构已经不存在的内存,必然导致错误)