news 2026/2/25 13:21:26

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/2/15 12:26:43

Git 命令图解指南:小白也能轻松上手的版本控制

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个面向 Git 新手的交互式学习工具,通过可视化方式讲解以下基础命令:git init、git add、git commit、git status、git log。要求每个命令都有&#x…

作者头像 李华
网站建设 2026/2/25 5:55:11

MATLAB 中读取 ivecs 格式向量文件的函数详解

在近似最近邻搜索(ANN)领域,我们经常需要处理大规模向量数据集,比如经典的 SIFT1M 或 BIGANN 数据集。这些数据集通常以二进制格式存储,其中 ivecs 格式是一种常见的整数向量存储方式。它特别适合存储地面真相(groundtruth),即每个查询向量的最近邻 ID 列表。 ivecs 文…

作者头像 李华
网站建设 2026/2/25 10:27:17

社交媒体平台的内容安全防线:GLM-4.6V-Flash-WEB来守护

社交媒体平台的内容安全防线:GLM-4.6V-Flash-WEB来守护 在今天的社交媒体平台上,一条图文并茂的动态可能几秒内触达百万用户。这种传播效率令人惊叹,但也带来了一个日益严峻的问题:如何在海量内容中快速识别出虚假广告、违规图像或…

作者头像 李华
网站建设 2026/2/25 7:26:44

Softmax函数在图像分类任务中的实际应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个完整的图像分类项目,使用CNN网络和Softmax输出层。要求:1) 使用PyTorch框架 2) 包含数据加载和预处理 3) 网络结构包含卷积层、池化层和全连接层 4…

作者头像 李华
网站建设 2026/2/24 4:11:46

GitHub镜像网站上如何快速找到并部署GLM-4.6V-Flash-WEB

GitHub镜像网站上如何快速找到并部署GLM-4.6V-Flash-WEB 在AI应用从实验室走向真实业务系统的今天,一个常被忽视的现实是:很多模型虽然能力强大,却“跑不起来”——不是因为算法不行,而是部署太难。环境冲突、依赖错乱、显存不足…

作者头像 李华
网站建设 2026/2/23 18:37:09

html字体图标生成和下载

链接:https://pan.quark.cn/s/340b48d208a4html字体图标生成和下载(方便、快捷、实用)有时为了找个合适图标,花费较多时间,刚好有个网络字体库fontAwesome,通过反复研究转码成功,可用来做图标&a…

作者头像 李华