1. 浅拷贝:副本对象在copy原对象的时候只拷贝属于原对象的资源的“地址”,即拷贝发生后它们拥有同一片内存,
所以副本作为一个对象,与原对象一样,在执行完后会释放自己的资源,此时就会对同一块内存释放两次,以致出错。
例如, 主函数里有调用语句: 成员函数名(某对象)//对象作参数
被调函数里有语句: return (某对象) //对象作返回值
函数里有语句: 类名 对象2=对象1(已用构造函数初始化) //用对象1初始化对象2,且对象2没有资源空间
2. 深拷贝:拷贝前副本对象已有可以存放资源的内存,只是将原对象的资源拷贝到副本所在的内存。
3. 为什么用拷贝构造函数?
程序中有浅拷贝发生时,用拷贝构造函数来实现“深拷贝”,使得副本和原对象拥有各自的内存资源,释放时可以独立调用各自的析构函数。