C++ 默认是值传递(复制对象)

news/2025/3/20 10:16:51/文章来源:https://www.cnblogs.com/Fitz/p/18782484

在 C++ 中,除非显式使用引用,否则赋值操作是通过拷贝(值传递)的方式进行的。也就是说:

  • C++ 的值传递

    vdir temdir = guanceDataList[m];
    

    这行代码会调用 vdir 的拷贝构造函数,将 guanceDataList[m] 的数据复制到 temdir 中。此后,对 temdir 的修改不会反映到 guanceDataList[m] 上,因为它们是两个独立的对象。如果希望直接修改原来的元素,可以使用引用,例如:

    vdir& temdir = guanceDataList[m];
    
  • Java 的引用传递
    在 Java 中,数组存储的是对象的引用。当你取出数组中的一个元素时,实际上得到的是这个对象的引用。对这个引用所指向的对象进行修改,会直接影响数组中的对象,因为它们实际上是同一个对象。

总结来说,C++ 默认是值传递(复制对象),而 Java 默认存储和传递的是对象引用,所以在 Java 中对数组元素进行操作会直接影响原数组中的对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901906.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成AI的两大范式:扩散模型与Flow Matching的理论基础与技术比较

生成模型已成为人工智能领域的关键突破,赋予机器创建高度逼真的图像、音频和文本的能力。在众多生成技术中,扩散模型和Flow Matching尤为引人注目。这两种方法虽然都致力于在噪声与结构化数据之间建立转换,但其基础原理存在本质区别。本文将系统地比较这两种先进技术,深入探…

基于ACE_SOCK_Dgram的UDP同步通信

1、创建基于ACE_SOCK_DGRAM的UDP服务端1 void udp_server_base_on_synch()2 {3 // 1. 绑定服务端地址(端口 8080)4 ACE_INET_Addr server_addr(8080);5 ACE_SOCK_DGRAM sock;6 if (sock.open(server_addr) == -1) {7 std::cerr << "Serve…

第二十一章 项目管理科学基础(2025年详细解析版)

目录导学21.1 工程经济学资金的时间价值与等值计算定义常识现在值与将来值等值计算问题单利法与复利法 (利滚利)单利法复利法承兑汇票示例项目经济静态评价方法什么叫回收期?什么叫静态?静态投资回收期例题(必须掌握)投资收益率定义公式例题项目经济动态评价方法什么是动态…

windows输入法选用

前言 一直以来pc输入法都是用的搜狗,但是总想换一个用一用,每次都是尝试换讯飞,每次都用不下去。 不推荐 讯飞 bug极多。比如中文输入下,按shift,应该留下英文。当然一般情况下没问题,但是出现bug时,切换后再打字,会覆盖前面的字。 QQ 曾长期使用过,但是那时候用电脑用…

OpenTelemetry安装和使用

官网 https://opentelemetry.io/环境查看 系统环境# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) # uname -a Linux Rocky9Opentelemetry003078 5.14.0-362.18.1.el9_3.0.1.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Feb 11 13:49:23 UTC 2024 x86_64 x86_64 x86_…

大厂裁员不断,这个高薪岗位却找不到人?

《未来简史》写道:“未来属于那些能够快速适应变化、不断学习新技能的人。”大家好,我是陈哥。 当下,裁员潮席卷全球:微软裁撤万人级游戏部门,谷歌AI伦理团队被优化,亚马逊用机器人取代数万仓储岗位。然而,DevOps工程师的招聘却逆势而上。 据美国在线求职平台FlexJobs数…

跑酷P2 移动有害和切换关卡

跑酷游戏 第二集 本集中我们对上一集中的移动问题进行了优化,并且制作了关卡切换功能。 移动优化 上一集中,我们留下了一些移动方面的问题。首先是连跳问题,角色在空中可以不受限制的跳跃,我们需要解决一下。新建一个私有变量正在跳跃,用来存放角色跳跃的状态。在游戏开始…

跑酷P6 过关功能

跑酷游戏 第六集 本集我们实现了完成关卡的功能,并且修复了重新开始游戏后物资的bug。 角色绘制和显示逻辑 我们复制一下我们的物资角色,重命名为出口。然后绘制两个造型,一个是出口关闭的造型,一个是出口打开的造型。然后到我们的代码部分。我们的出口代码和物资角色的代码…

跑酷P6 关卡和金币系统

塔防游戏 第六集 本集主要实现了游戏的关卡处理和金币系统。 关卡处理 绘制一个开始按钮放置在画面左上方。我们希望在游戏开始时,或者一波关卡结束之后可以点击这个按钮,生成新一个关卡的敌人。我们新建一个全局变量关卡。游戏开始时关卡默认为0,每次开启一个新的关卡让这个…

跑酷P5 收集物资

跑酷游戏 第五集 本集我们实现了搜集物资的功能。 移动和复制 首先我们复制一遍场景角色,然后清空造型。复制的原因是我们移动和显示部分的代码逻辑,物资和场景是一样的。 然后我们来重新绘制造型。这里我们可以用自己喜欢的造型,金币,水果,宝石等都可以。这里我按视频的做…

读DAMA数据管理知识体系指南25数据集成活动

读DAMA数据管理知识体系指南25数据集成活动1. 规划和分析 1.1. 数据集成和互操作涉及在什么时间、什么地点、以什么方式能获得数据 1.2. 定义数据集成和生命周期需求1.2.1. 定义数据集成需求涉及理解组织的业务目标,以及为实现这些目标而需要的数据和建议的技术方案1.2.2. 数据…

塔防P9/P10 激光炮台和游戏结束判定

塔防游戏 第九/十集 这两集我们完成了一个新炮台——激光炮台,以及敌人碰到地图边缘扣除生命值导致游戏结束的功能。 绘制炮台 在炮台角色中绘制炮台的图片并复制到图标一份,绘制炮台不可选中的图标和炮台的开火动画。我们设计激光炮台的开火前有短时间的蓄力过程,我们需要两…