永发信息网

深拷贝和浅拷贝最大的区别就是子类对象的地址是否改变

答案:2  悬赏:60  手机版
解决时间 2021-12-24 15:13
  • 提问者网友:沉默的哀伤
  • 2021-12-23 15:24
深拷贝和浅拷贝最大的区别就是子类对象的地址是否改变
最佳答案
  • 五星知识达人网友:低音帝王
  • 2022-01-10 03:58
浅拷贝就是成员数据之间的一一赋值:把值赋给一一赋给要拷贝的值。但是可能会有这样的情况:对象还包含资源,这里的资源可以值堆资源,或者一个文件。。当值拷贝的时候,两个对象就有用共同的资源,同时对资源可以访问,这样就会出问题。深拷贝就是用来解决这样的问题的,它把资源也赋值一次,使对象拥有不同的资源,但资源的内容是一样的。对于堆资源来说,就是在开辟一片堆内存,把原来的内容拷贝。
如果你拷贝的对象中引用了某个外部的内容(比如分配在堆上的数据),那么在拷贝这个对象的时候,让新旧两个对象指向同一个外部的内容,就是浅拷贝;如果在拷贝这个对象的时候为新对象制作了外部对象的独立拷贝,就是深拷贝
引用和指针的语义是相似的,引用是不可改变的指针,指针是可以改变的引用。其实都是实现了引用语义。
全部回答
  • 1楼网友:山君与见山
  • 2022-01-10 04:55
也许是的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯