打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
让一个对象=另一个对象,改变这个对象里变量的数据,另一个对象会不会受到影响
我有一个自己作的class(LinkedStack),然后声明了两个对象LinkedStack temp = new LinkedStack();LinkedStack Path。

但是,当我用temp = Path;把path的值给了temp以后;我对temp进行一些删除,但是path里面的值也没了。

请问如何把path的值赋给temp,但是修改temp的时候不影响path。



答案:定义的每一个类都是引用类型,当一个实例复制给另一个实例的时候,就是你的temp=path,实际上是把path所指向的内存地址空间传递给了temp,所以当temp进行操作改变的时候,path也就发生了改变,因为两个变量好比一个房间的两把钥匙,无论谁用钥匙进去改变了房间中的物品,然后用另外一把钥匙进去看到的肯定是改变后的房间。

所以,对于引用类型,就要使用克隆赋值,即temp=path.clone();它标志着按照path所指向的地址房间,重新建造了一个一模一样的房间,并把钥匙给了temp。假设原来的path所指向的地址是1000000,那么temp就可能为1010000了。
不知道我这个解释你能不能明白。其实上面几位都解释得很正确了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++ 值传递、指针传递、引用传递详解(转)
关于指针
C++之引用的详解
Python入门:3000字深入剖析变量和赋值
C笔记
C#-值类型与引用类型
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服