C++基础学习记录—this指针

1、概念

1、this指针是一个特殊的指针,存储的对象的首地址,成员函数(类内)都隐含一个this指针。

2、类的成员函数(包括构造函数和析构函数)中都有this指针,因此this指针只能在类内部使用。

3、哪个对象调用成员函数,this指针就指向哪个对象,访问哪个对象的属性。虽然不用手写this指针,但是编译器都会使用this指针来调用成员。

#include<iostream>using namespace std;class Test{
private:string name;
public://this可以用来区分同名参数和成员属性Test(string name){this->name = name;}void test_this(){cout << this << endl;}void show(){//只有对象才能调用成员,非重名情况编译器自动添加thiscout << name << endl;cout << this->name << endl;this->test_this();}
};int main(){Test t1("admin");t1.show();return 0;
}

2、应用

1、区分同名参数和成员属性

        可以用this指针来区分同名参数和成员属性

2、类中成员的调用都是依赖于this指针的

        类中成员的调用都是依赖于this指针的,默认情况下由编译器自动添加

3、链式调用

        当返回值是对象引用时,可以返回*this,此函数支持链式调用。

支持链式调用的成员函数的特点:

1、返回值类型是当前类的引用

2、return后面是 *this

#include <iostream>using namespace std;class Test{
private:int num;
public:Test(int num)//1、可以用this指针来区分同名参数和成员属性{this->num=num;}//num 读接口int get_num(){//2、类中成员的调用都是依赖于this指针的,默认情况下由编译器自动添加return  this->num;//就是return num}//num进行add操作  3、链式调用//当返回值类型时对象引用时,可以返回*this,此函数支持链式调用Test& add(int n){num += n;return *this;}
};int main()
{Test t1(2);cout << t1.get_num() <<endl;//2
//    t1.add(3);
//    cout << t1.get_num() <<endl;
//    t1.add(4);
//    cout << t1.get_num() <<endl;
//    t1.add(100);
//    cout << t1.get_num() <<endl;//链式调用  可以对上述代码进行简写cout << t1.add(3).add(4).add(100).get_num() << endl;return 0;
}

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

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

相关文章

视频理解新篇章:Mamba模型的探索与应用

人工智能咨询培训老师叶梓 转载标明出处 想要掌握如何将大模型的力量发挥到极致吗&#xff1f;叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具&#xff08;限时免费&#xff09;。 1小时实战课程&#xff0c;您将学习到如何轻松上手并有效利用 Llama Facto…

Flutter项目试水

1基本介绍 本文章在构建您的第一个 Flutter 应用指导下进行实践 可作为项目实践的辅助参考资料 Flutter 是 Google 的界面工具包&#xff0c;用于通过单一代码库针对移动设备、Web 和桌面设备构建应用。在此 Codelab 中&#xff0c;您将构建以下 Flutter 应用。 该应用可以…

LVS作业

1、对比 LVS 负载均衡群集的 NAT 模式和 DR 模式&#xff0c;比较其各自的优势 。 NAT 模式 部署与管理优势 配置简易&#xff1a;在 NAT 模式中&#xff0c;负载均衡器主要承担网络地址转换的工作&#xff0c;只需配置简单的 NAT 规则&#xff0c;就能实现将外部请求合理地转…

从零开始手写Shell:详解命令行解释器的实现原理

Shell的本质认知 命令行解释器&#xff08;Shell&#xff09;是操作系统的"翻译官"&#xff0c;它的核心工作流程可以抽象为&#xff1a; 循环 {1. 显示提示符2. 获取命令输入3. 解析命令参数4. 执行命令程序 }本实现仅需200行C代码&#xff0c;却能完整展现Shell的…

mysql读写分离与proxysql的结合

上一篇文章介绍了mysql如何设置成主从复制模式&#xff0c;而主从复制的目的&#xff0c;是为了读写分离。 读写分离&#xff0c;拿spring boot项目来说&#xff0c;可以有2种方式&#xff1a; 1&#xff09;设置2个数据源&#xff0c;读和写分开使用 2&#xff09;使用中间件…

机器学习10-卷积和卷积核3

机器学习10-卷积和卷积核3 纹理表示卷积神经网络全链接神经网络的瓶颈卷积网络中的卷积操作特征响应图组尺寸计算 池化操作示例 图像增强翻转随机缩放抠图色彩抖动其他方案1. 平移2. 旋转3. 拉伸4. 径向畸变5. 裁剪 纹理表示 如何去表示纹理&#xff1f; 基于卷积核组的纹理表…

办公用品管理系统需求说明

办公用品管理系统需求说明 1. 系统概述 目标&#xff1a;实现办公用品的全生命周期管理&#xff08;采购→入库→领用→盘点→报废&#xff09;&#xff0c;提升物资使用效率&#xff0c;降低运营成本 用户角色&#xff1a; 普通员工部门管理员采购专员财务人员系统管理员 …

Shell-基本命令与运算符

1.为什么要进行shell编程? 在Linux系统中&#xff0c;虽然有各种各样的图形化接口工具&#xff0c;但是shell仍然是一个非常灵活的 工具。 Shell不仅仅是命令的收集&#xff0c;而且是一门非常棒的编程语言。 您可以通过使用shell使大量的任务自动化&#xff0c; 因此&#…

Spring基于文心一言API使用的大模型

有时做项目我们可能会遇到要在项目中对接AI大模型 本篇文章是对使用文心一言大模型的使用总结 前置任务 在百度智能云开放平台中注册成为开发者 百度智能云开放平台 进入百度智能云官网进行登录&#xff0c;点击立即体验 点击千帆大模型平台 向下滑动&#xff0c;进入到模型…

【工业安全】-CVE-2022-35555- Tenda W6路由器 命令注入漏洞

文章目录 1.漏洞描述 2.环境搭建 3.漏洞复现 4.漏洞分析 4.1&#xff1a;代码分析  4.2&#xff1a;流量分析 5.poc代码&#xff1a; 1.漏洞描述 漏洞编号&#xff1a;CVE-2022-35555 漏洞名称&#xff1a;Tenda W6 命令注入 威胁等级&#xff1a;高危 漏洞详情&#xff1…

xtuner微调internlm2-chat-1_8b--xtuner中文文档快速上手案例

xtuner微调internlm2-chat-1_8b–xtuner中文文档快速上手案例 设备&#xff1a;百度飞桨免费算力平台16GB显存 1. 安装库 conda conda create --name xtuner-env python3.10 -y conda activate xtuner-env将model的conda保存到本地防止丢失 conda env list #参考env在那个…

智慧出行与车路云一体化政策研究报告

智慧出行政策的发展趋势可以大致划分为三个阶段&#xff0c;与行业发展历程紧密相连。当前&#xff0c;智慧出行政策正逐步进入第三阶段&#xff0c;即技术融合与广泛应用阶段。这一阶段的政策发展趋势将更加注重智慧出行的全面融合和创新应用。比如智能网联技术在智慧出行层面…

民兵装备管理系统DW-S300|支持国产化、自主研发

民兵装备器材管理系统&#xff08;智装备DW-S301&#xff09;是一套成熟系统&#xff0c;依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 装备接收与登记 民兵装备抵达仓库时&#…

【STM32系列】利用MATLAB配合ARM-DSP库设计FIR数字滤波器(保姆级教程)

ps.源码放在最后面 设计IIR数字滤波器可以看这里&#xff1a;利用MATLAB配合ARM-DSP库设计IIR数字滤波器&#xff08;保姆级教程&#xff09; 前言 本篇文章将介绍如何利用MATLAB与STM32的ARM-DSP库相结合&#xff0c;简明易懂地实现FIR低通滤波器的设计与应用。文章重点不在…

服务器,交换机和路由器的一些笔记

服务器、交换机和路由器是网络中常用的设备&#xff0c;它们的本质区别和联系如下&#xff1a; 本质区别 功能不同 服务器&#xff1a;就像一个大型的资料仓库和工作处理中心&#xff0c;主要用来存储和管理各种数据&#xff0c;比如网站的网页数据、公司的办公文档等&#x…

SpringCloud - Gateway 网关

前言 该博客为Sentinel学习笔记&#xff0c;主要目的是为了帮助后期快速复习使用 学习视频&#xff1a;7小快速通关SpringCloud 辅助文档&#xff1a;SpringCloud快速通关 源码地址&#xff1a;cloud-demo 一、简介 官网&#xff1a;https://spring.io/projects/spring-clou…

【vs2022配置cursor】

Cursor搭配cmake实现C程序的编译、运行和调试的参考地址 cursor下载地址 第一步&#xff1a; 电脑上按爪cmake 第二步&#xff1a;cursor 配置 安装中文 第三步环境变量&#xff1a; D:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.322…

C#/.NET/.NET Core技术前沿周刊 | 第 24 期(2025年1.27-1.31)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿、推荐…

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…

用语言模型探索语音风格空间:无需情感标签的情 感TTS

用语言模型探索语音风格空间&#xff1a;无需情感标签的情感TTS 原文&#xff1a;Exploring speech style spaces with language models: Emotional TTS without emotion labels 今天我们要说的是 一种无需情感标签的情感TTS。提出了一个基于FastSpeech2的E-TTS框架&#xff0…