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

快速弄懂C++中的this指针

作用:

  1. 防止在定义类的时候出现同名变量(如:定义了一个私有变量,在共有域中用一个方法对私有变量进行了赋值,且赋值的变量与私有域变量同名,此时只有使用this指针才能进行赋值)
  2. 能够在定义的类内部成员函数中返回类本身(在定义函数头的时候注意要使用引用的方式在通过this指针的情况下返回自身类;因为在类定义的时候类本身只是一个模板,模板是不能被传递的,只有实体能被传,所以此时需要使用一个指针来完成return本身的抽象含义而this指针本身是一个实体所以可以被传递,然后使用引用而不是直接返回是因为:直接返回的只会是对象的拷贝,只有使用引用返回的才是当前的类对象)

例子如下:

class Box {
private:int length;public:Box(int l) : length(l) {}void setLength(int length) {// 使用 this 指针区分成员变量和局部变量this->length = length;}Box& multiplyBy(int factor) {length *= factor;return *this;  // 返回对象本身}int getLength() {return length;}
};

相关文章:

  • Android7.1 高通 特定apk最上面活动时,禁止关机或重启
  • 算法----小行星碰撞
  • 解决SSH连接自动断开的问题
  • [Vue 配置] Vite + Vue3 项目配置 Tailwind CSS
  • 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B卷
  • 人充当LLM Agent的工具(Human-In-The-Loop ),提升复杂问题解决成功率
  • STM32F429主控TB6612驱动直流电机----解决PWM波形未输出bug
  • 清华学霸告诉你:如何自学人工智能?
  • 【Python 千题 —— 基础篇】输出列表方差
  • 国产化项目改造:使用达梦数据库和东方通组件部署,前后端分离框架
  • mac中安装Homebrew
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • SpringCloud微服务:Ribbon负载均衡
  • 【微服务专题】Spring启动过程源码解析
  • 【Java并发编程三】线程的基本使用一
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android Studio:GIT提交项目到远程仓库
  • Centos6.8 使用rpm安装mysql5.7
  • HTTP中的ETag在移动客户端的应用
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • React系列之 Redux 架构模式
  • spring security oauth2 password授权模式
  • spring-boot List转Page
  • 创建一个Struts2项目maven 方式
  • 大型网站性能监测、分析与优化常见问题QA
  • 回顾 Swift 多平台移植进度 #2
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 判断客户端类型,Android,iOS,PC
  • 前言-如何学习区块链
  • 三栏布局总结
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 实战|智能家居行业移动应用性能分析
  • 树莓派 - 使用须知
  • 我建了一个叫Hello World的项目
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 我们雇佣了一只大猴子...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​批处理文件中的errorlevel用法
  • #162 (Div. 2)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (3)llvm ir转换过程
  • (4)STL算法之比较
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (六)软件测试分工
  • (七)Knockout 创建自定义绑定
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转载)hibernate缓存
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)深入super,看Python如何解决钻石继承难题
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程