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

C++ 类和对象篇(二) this指针

目录

一、this指针概念 

二、this指针的特性

三、this指针存在哪里?

四、this指针可以为空吗? 


一、this指针概念 

1.是什么?

        它是类内非静态成员函数的隐含形参,this指针指向调用该函数的对象。

        this指针是C++编译器给每个“非静态的成员函数“默认传入的一个隐藏参数,this指针指向调用该成员函数的对象。


2.为什么要有this指针?

        如何让对象内的成员函数、成员变量,看到对象本身呢?——通过this指针:this是一个指针,它时时刻刻指向对象本身。


3.怎么用?

        this指针只能在一个类的成员函数中调用,它表示当前对象的地址。


二、this指针的特性

1. this指针的类型:类的类型* const,所以this指针被const修饰无法被修改


2. this指针是隐式的,只能在“成员函数”的内部使用


3. this指针本质上是“成员函数”的形参,当对象调用成员函数时,将对象地址作为实参传递给this形参。 所以对象中不存储this指针,即this指针并不是对象本身的一部分,不会影响 sizeof(对象) 的结果。


4.成员函数实际都隐藏了一个this指针参数,这是编译器默认传递的,不需要我们传递。

eg.实际上的成员函数和成员函数的调用。

​​

eg.this指针由编译器传递。


三、this指针存在哪里?

this指针和其他形参一样一般存在栈上。它不在对象里,故计算类的大小时没有计算this指针。


四、this指针可以为空吗? 

可以,如:使用nullptr实例化一个对象时,this指针就为空,指向空的地址。

但这样就无法使用this指针调用类内成员,因为this指针指向空的地址,强行调用类内成员会报错。

相关文章:

C++ 类和对象篇(二) this指针

目录 一、this指针概念 二、this指针的特性 三、this指针存在哪里? 四、this指针可以为空吗? 一、this指针概念 1.是什么? 它是类内非静态成员函数的隐含形参,this指针指向调用该函数的对象。 this指针是C编译器给每个“非静态…...

Excel快捷键F1-F9详解:掌握实用快捷操作,提升工作效率

Excel是广泛应用于办公场景的优质电子表格软件,然而,许多人只是使用鼠标点击菜单和工具栏来完成操作,而忽略了快捷键的威力。在本文中,我们将详解Excel中的F1-F9快捷键,帮助您掌握实用的快捷操作,提升工作效…...

Webpack 安装教程

Webpack 是一个前端资源加载/打包工具。 安装 Webpack 使用 cnpm 安装 webpack: cnpm install webpack -g 创建项目 接下来我们创建一个目录 app: mkdir app 在 app 目录下添加 runoob1.js 文件,代码如下: app/runoob1.js 文件…...

移远通信首批加入“5G+eSIM计算终端产业合作计划”,助力大屏移动终端全时在线

7月29日,在全球数字娱乐产业盛会 ChinaJoy上,中国联通携手高通公司、GSMA发布了“5GeSIM 计算终端产业合作计划”。 作为全球领先的物联网整体解决方案供应商,移远通信首批加入该计划,副总经理刘明辉受邀参加5GeSIM 计算终端产业合…...

全网最强大的工具箱—utools介绍及分享

今天来介绍一个相见恨晚的PC端工具——utools,什么是utools?用其自身的话来说:“uTools是一个极简、插件化、跨平台的现代化桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。”,体验了下,好用且强大&…...

Linux常用基础命令❀

文章目录❀ ❀ls命令 ❀cd命令 ❀pwd命令 ❀date命令 ❀创建、删除文件和目录命令 ❀alias命令 ❀复制、移动、重命名、查看(文件、目录)命令 ❀find查找、wc统计命令 ❀vi/vim命令 1、打开文件 2、工作模式 vi与vim的四个模式 进入编辑模式…...

SQL-进阶

mysql --local-infile -u root -pset global local_infile 1;load data local infile 目录 into able 表名 fields terminated by , lines terminated by \n;...

[Pytorch]卷积运算conv2d

文章目录 [Pytorch]卷积运算conv2d一.F.Conv2d二.nn.Conv2d三.nn.Conv2d的运算过程 [Pytorch]卷积运算conv2d 一.F.Conv2d torch.nn.functional.Conv2d()的详细参数: conv2d(input: Tensor, weight: Tensor, bias: Optional[Tensor]None, stride: Union[_int, _s…...

主流开源监控系统一览

减少故障有两个层面的意思,一个是做好常态预防,不让故障发生;另一个是如果故障发生,要能尽快止损,减少故障时长。而监控的典型作用,就是帮助我们发现及定位故障,这两个环节对于减少故障时长至关…...

爬虫原理详解及requests抓包工具用法介绍

文章目录 一、什么是爬虫?二、爬虫的分类三、网址的构成四、爬虫的基本步骤五、动态页面和静态页面六、伪装请求头七、requests库介绍1. 概念:2. 安装方式(使用镜像源):3. 基本使用:4. response对象对应的方…...

tinkerCAD案例:31. 3D 基元形状简介

tinkerCAD案例:31. 3D 基元形状简介 1 将一个想法从头脑带到现实世界是一次令人兴奋的冒险。在 Tinkercad 中,这将从一个新的设计开始。 在新设计中,简单的原始形状可以通过不同的方式组合成更复杂的形状。 在这个项目中,你将探索…...

Vue2基础一、快速入门

零、文章目录 Vue2基础一、快速入门 1、Vue 概念 (1)为什么学 前端必备技能 岗位多,绝大互联网公司都在使用Vue 提高开发效率 高薪必备技能(Vue2Vue3) (2)Vue是什么 **概念:…...

【POJ-3279】Fliptile(递推+搜索)

POJ-3279. Fliptile(递推搜索) Vjudge链接 题目描述 农场主约翰知道,一头智力得到满足的奶牛是一头快乐的奶牛,它会产更多的奶。他为奶牛安排了一项脑力活动,让它们摆弄一个 M N M N MN 的方格 ( 1 ≤ M ≤ 15 …...

522个matplotlib绘图案例,包含:折线图、散点图、条形图、饼图、直方图、3D图等,源码可直接运行!

文章目录 matplotlib介绍图表介绍折线图(Line Plot)散点图(Scatter Plot)条形图(Bar Plot)饼图(Pie Chart)直方图(Histogram)箱线图(Box Plot&…...

windows安装Elasticsearch8.9.0

官网解压安装好路径(非中文,无空格) 可参考 言之有李LAX csdn http://t.csdn.cn/S2oju本人使用jdk17 修改配置elasticsearch.yml xpack.security.enabled: false xpack.security.http.ssl:enabled: false直接点击bin\elasticsearch.bat…...

用Delphi编写一个通用视频转换工具,让视频格式转换变得更简单

用Delphi编写的简单视频格式转换程序,它使用TComboBox、TOpenDialog和TSaveDialog组件来选择转换格式、选择源视频文件和选择目标视频文件。程序还使用TEdit组件允许用户输入参数,然后将这些组件中的信息拼接成转换命令并在DOS窗口中运行它。 procedure…...

Kafka系列之:安装Know Streaming详细步骤

Kafka系列之:安装Know Streaming详细步骤 一、相关技术博客二、安装elasticsearch1.下载elasticsearch2.创建数据目录3.创建es用户4.修改最大文件数5.解压elasticsearch6.赋予es用户目录权限7.修改es配置8.切换es用户启动elasticsearch三、安装KnowStreaming1.下载KnowStreami…...

绝杀 GETPOST 嵌套的 JSON 参数

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序中的数据传输。在HTTP数据包信息传递时,JSON扮演着非常正常的角色,因为它是一种通用的数据格式,可以被多种编程语言和应用程…...

Spring 项目过程及如何使用 Spring

文章目录 1.创建 Spring 项目步骤1.1 创建 Maven 项目1.2添加 Spring 框架支持1.3 添加启动项2.如何使用 Spring2.1 存储 Bean 对象2.1.1 创建 Bean对象2.1.2 将 Bean对象注册到容器中 2.2 获取并使用 Bean对象2.2.1 使用 ApplicationContext 获取对象2.2.2 使用 BeanFactory 获…...

信息学奥赛一本通——1258:【例9.2】数字金字塔

文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】 AC代码 题目 【题目描述】 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面…...

OpenClaw自动化测试实践:GLM-4.7-Flash驱动脚本执行与结果分析

OpenClaw自动化测试实践:GLM-4.7-Flash驱动脚本执行与结果分析 1. 为什么选择OpenClaw做测试自动化? 上个月接手一个新项目时,我遇到了一个典型的技术矛盾:作为独立开发者,既需要保证代码质量,又没精力手…...

逆向视角看iOS加固:从机器码到伪代码,手把手教你分析加固效果与潜在风险

逆向视角看iOS加固:从机器码到伪代码的深度解析 当你在App Store下载一个应用时,可能不会想到这个看似简单的IPA文件背后隐藏着怎样的技术博弈。作为iOS开发者或安全研究员,我们常常需要从另一个角度思考——不是如何保护自己的应用&#xf…...

TestNet资产管理平台:从安装到实战,全面超越灯塔的解决方案

1. TestNet资产管理平台:为什么你需要它? 如果你是一名网络安全工程师或者渗透测试人员,肯定对资产管理的繁琐深有体会。传统的资产管理工具要么功能单一,要么操作复杂,而TestNet资产管理系统的出现,彻底改…...

解锁Audacity:5个零成本音频处理功能彻底改变你的创作流程

解锁Audacity:5个零成本音频处理功能彻底改变你的创作流程 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 价值定位:为什么Audacity是音频创作者的必备工具 在音频编辑领域,专…...

ESP8266 AT指令实战:用NodeMCU连接WiFi并发送HTTP请求(2023最新版)

ESP8266 AT指令实战:用NodeMCU连接WiFi并发送HTTP请求(2023最新版) 当你拿起一块NodeMCU开发板时,它可能看起来只是块普通的电路板,但内置的ESP8266芯片让它成为了物联网开发的瑞士军刀。不同于Arduino需要额外WiFi模块…...

IBM System/4 Pi:航空航天计算机的兴衰与技术传奇

【导语:1981 年航天飞机首飞,其发射和大部分飞行环节由 IBM 的 System/4 Pi 系列 AP - 101B 计算机控制。该系列于 1967 年推出,广泛应用于航空航天等领域,虽发挥重要作用,但相关信息却较难获取。】System/4 Pi&#x…...

基于yz-bijini-cosplay的.NET应用开发:AI功能集成实践

基于yz-bijini-cosplay的.NET应用开发:AI功能集成实践 1. 为什么要在.NET应用里集成cosplay风格生成能力 最近有好几位做数字内容平台的朋友问我:“我们给动漫爱好者提供社区服务,能不能在自己的App里直接生成角色同款泳装或Cosplay造型&am…...

14届蓝桥杯省赛Java A 组Q4~Q5

题目链接: Q4 蓝桥云课:棋盘 洛谷:P13879 [蓝桥杯 2023 省 Java A] 棋盘 Q5 蓝桥云课:互质数的个数 洛谷:P13880 [蓝桥杯 2023 省 Java A] 互质数的个数 算法原理: Q4解法:前缀和差分 时间…...

英雄联盟段位修改完整解决方案:LeaguePrank免费工具终极指南

英雄联盟段位修改完整解决方案:LeaguePrank免费工具终极指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 还在为单调的游戏段位显示感到乏味吗?LeaguePrank这款创新的免费工具将彻底改变你的英雄联盟…...

Waymo Open Dataset Docker部署:环境配置与容器化最佳实践

Waymo Open Dataset Docker部署:环境配置与容器化最佳实践 【免费下载链接】waymo-open-dataset Waymo Open Dataset 项目地址: https://gitcode.com/gh_mirrors/wa/waymo-open-dataset Waymo Open Dataset是自动驾驶领域的重要开源项目,提供了丰…...