news 2026/5/1 4:51:43

this指针

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
this指针

一、概念是链式编程(Method Chaining)的核心概念

二、例子详解

Person&PersonAddAge(Person &p) {this->age+=p.age; //this指回p2的指针,而*this指回的就是p2这个对象本体 return*this;}

为什么需要返回引用?

1.效率考虑

  • 返回引用:不创建新对象,直接操作原对象

  • 返回值:会创建临时副本(拷贝构造),效率低

2.支持链式调用

// 如果不返回引用,而是返回值: Person PersonAddAge(Person &p) { this->age += p.age; return *this; // 返回的是副本! } p2.PersonAddAge(p1).PersonAddAge(p3); // 第二次调用是在临时对象上,不是原来的p2!

3.差别:

1)void版本的函数

void PersonAddAge(Person &p) { this->age += p.age; // 只能执行一次操作,不能连续调用 }

使用方式:

p2.PersonAddAge(p1); // 执行完就结束了 p2.PersonAddAge(p3); // 需要再写一行

2)Person&版本的函数

Person& PersonAddAge(Person &p) { this->age += p.age; return *this; // 返回对象本身的引用 }
使用方式(链式调用):
p2.PersonAddAge(p1).PersonAddAge(p3).PersonAddAge(p4); // 可以连续调用,从左到右执行

三、总结

返回类型特点能否链式调用
void只执行操作❌ 不能
Person返回副本⚠️ 可以但操作的是副本
Person&返回自身引用✅ 可以且操作原对象

关键点:

  • 返回引用是为了操作原对象,不是创建新对象

  • 链式编程让代码更简洁、可读

  • *this返回的是当前对象的引用

  • 这是面向对象编程中常见的设计模式

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:02:55

Git零基础入门:快马AI带你5分钟上手版本控制

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式Git学习应用,包含:1) 基础概念可视化讲解 2) 沙盒环境实践操作 3) 实时错误检测与纠正建议 4) 渐进式难度任务。使用Markdown展示教程&#…

作者头像 李华
网站建设 2026/5/1 5:04:05

VCPKG vs 手动管理:量化对比C++项目构建效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个测试套件,量化比较VCPKG和手动依赖管理的效率差异。功能包括:1) 自动化测试5个典型C项目的初始化时间;2) 测量依赖更新所需时间&#x…

作者头像 李华
网站建设 2026/5/1 5:02:19

零基础入门:用Notepad--写出你的第一个网页

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个交互式HTML教学工具,左侧是Notepad--风格的编辑器,右侧是实时预览窗口。内置10个循序渐进的HTML教程,从‘Hello World’到完整网页。每…

作者头像 李华
网站建设 2026/5/1 4:11:03

NESSUS批量扫描效率提升300%的5个技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个NESSUS扫描优化工具,功能包括:1)分布式扫描节点管理 2)智能任务调度算法 3)网络带宽监控 4)扫描超时自动重试 5)性能日志分析。要求提供与单机扫描…

作者头像 李华
网站建设 2026/5/1 5:01:01

python超简单智能编译工具

链接:https://pan.quark.cn/s/11126dea39dbpython超超简单智能编译脚本打包超超智能,简单,会点鼠标就可以的。直接拉,直接点。就可以。图标也直接拉图片会直接转换成图标,不需要专门找转换功能了。

作者头像 李华
网站建设 2026/5/1 5:18:05

关于数据多显示的一点个人观点

关于界面数据较多时候,分页显示取代滚动条。滚动条无论是对操作系统开发员还是一般程序开发者来说两者都是很头疼的问题,而且运行速度很多时候对于操作系统和一般程序大大降低,对于一般程序员来说,无论是B/S还是C/S一般程序开发者…

作者头像 李华