当前位置: 首页 > news >正文

以*this返回局部对象的两种情况

1、以值返回局部对象

class Person {
public:Person(int age) {this->age = age;}// 以值方式返回局部对象会调用拷贝构造生成一个新的对象返回Person PersonAddPerson(Person p) {this->age += p.age;return *this;}int age;
};void test01() {Person p1(10);cout << "p1.age = " << p1.age << endl;Person p2(10);p2.PersonAddPerson(p1).PersonAddPerson(p1);cout << "p2.age = " << p2.age << endl;
}

 *this指对象本身,return一个对象且以值返回,会在return时用拷贝构造函数生成一个复制品,然后返回这个复制品,其返回的对象本身并不是对象本身。 p2.PersonAddPerson(p1).PersonAddPerson(p1);而这段代码在第一次执行PersonAddPerson(p1)时返回的是另一个对象,然后拿这另一个对象再执行PersonAddPerson(p1)时,其又返回另另一个对象。

2、以引用返回局部对象

	Person& PersonAddPerson(Person p) {this->age += p.age;return *this;}

 而以引用返回局部对象时,不会调用拷贝构造函数,其返回对象本身为对象本身。

http://www.gsyq.cn/news/21803.html

相关文章:

  • 2025.10.15
  • Kali 自定义ISO镜像
  • pytorch实训题
  • 【Azure App Service】App Service是否支持PHP的版本选择呢?
  • Markdown转换为Word:Pandoc模板使用指南 - 实践
  • 复习CSharp
  • C语言学习——运算符的学习
  • 实用指南:NXP - 用MCUXpresso IDE v25.6.136的工具链编译Smoothieware固件工程
  • cifar10
  • 感知节点@4@ ESP32+arduino+ 第二个程序 LED灯显示
  • WebGL学习及项目实战(第02期:绘制一个点)
  • display ip routing-table protocol ospf 概念及题目 - 详解
  • C语言学习——小数数据类型
  • 高敏感人应对焦虑
  • 2025 年执业兽医资格证备考服务机构推荐榜,执业兽医资格证培训机构/执兽考试机构/考试辅导机构获得行业推荐
  • [LangChain] 基本介绍
  • Palantir 的“本体工程”的核心思路、技术架构与实践示例
  • P14164 [ICPC 2022 Nanjing R] 命题作文
  • display ospf peer brief 概念及题目 - 实践
  • 记录一次客户现场环境,银河麒麟V10操作系统重启后,进入登录页面后卡死,鼠标键盘无响应的解决过程
  • ManySpeech.AliParaformerAsr 使用指南
  • 易路:以“薪酬科技+AI”重塑中国企业薪酬管理新范式
  • Web 编写 22
  • 下雪了 - L
  • 【html】canvas实现一个时钟 - 实践
  • 特殊函数
  • 一行代码也能行?极简实现GPIO按键关机(支持短按/长按)
  • 抖音麒麟福袋软件操作指南
  • 平面图最小割与对偶图最短路 - 干
  • 2025 苏州注册公司服务机构实用推荐:选择深度解析