浅拷贝 只是对指针的拷贝,拷贝前后两个指针指向的是同一个内存空间,
深拷贝 不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经过深拷贝后的指针指向两个不同地址的指针。
当对象中存在指针成员时,处理在复制对象时需要考虑自定义拷贝构造函数,还应该考虑下面两种情形:
- 当函数的参数为对象时,实参传递给形参的实际上是实参的一个拷贝对象,系统自动通过拷贝构造函数数显;
- 当函数的返回值为一个对象时,改对象实际上是函数哪对象的一个拷贝,用于返回函数调用处
copy
方法: 如果是非可扩展类对象,则是浅拷贝,如果是可扩展类对象,则是深拷贝。
mutableCopy
方法:无论是可扩展类对象函数不可扩展类对象,都是深拷贝。