源码如上所示。
在执行浅拷贝时会出现释放错误。因为浅拷贝只是把新的指向了原来的并没有开辟新的内存空间,所以只有一个内存空间,两个指向了同一片内存空间。
在执行深拷贝时就不会出现错误,并且可以看到构造函数执行了两次说明有两个类被释放了,因为深构造开辟了一个新的空间来指向原来的内的内容,所以会调用两次构造函数。
总结:浅构造不会开辟新的内存空间,深构造会开辟一片新的内存空间。
源码如上所示。
在执行浅拷贝时会出现释放错误。因为浅拷贝只是把新的指向了原来的并没有开辟新的内存空间,所以只有一个内存空间,两个指向了同一片内存空间。
在执行深拷贝时就不会出现错误,并且可以看到构造函数执行了两次说明有两个类被释放了,因为深构造开辟了一个新的空间来指向原来的内的内容,所以会调用两次构造函数。
总结:浅构造不会开辟新的内存空间,深构造会开辟一片新的内存空间。