1.浅拷贝
概念:
同一类型对象之间可以赋值,使两个对象之间的成员变量的值相同,两个变量仍然是独立的两个对象;即默认拷贝构造函数(浅拷贝)
缺点:
当类中有指针时,并且指针指向动态分配的内存空间,析构函数做了动态内存释放的处理会导致内存问题
解决方法:
自定义拷贝构造函数
2.深拷贝
在“深拷贝”的情况下,对于对象中动态成员,就不能仅仅简单地赋值了,而应该重新动态分配空间
3.总结
深拷贝与浅拷贝的区别就在于深拷贝会在堆内存中另外申请空间来储存数据,从而也就解决了指针悬挂的问题。简而言之,当数据成员中有指针时,必须要用深拷贝。