this指针的用处

C++学习笔记 【代码】C++学习笔记。 阅读详情
 1. this指针的用处:
一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。
例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),this帮助完成了这一转换 .

2. this指针的使用:
一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。 

3. this指针程序示例:
this指针是存在与类的成员函数中,指向被调用函数所在的类实例的地址。

根据以下程序来说明this指针
#include<iostream.h>
class Point
{ 
 int x, y;
public:
 Point(int a, int b) { x=a; y=b;}
 Void MovePoint( int a, int b){ x+=a; y+=b;}
 Void print(){ cout<<"x="<<x<<"y="<<y<<endl;}
};

void main( )
{
 Point point1( 10,10);
 point1.MovePoint(2,2);
 point1.print( );
}

当对象point1调用MovePoint(2,2)函数时,即将point1对象的地址传递给了this指针。
MovePoint函数的原型应该是 void MovePoint( Point *this, int a, int b);第一个参数是指向该类对象的一个指针,我们在定义成员函数时没看见是因为这个参数在类中是隐含的。这样point1的地址传递给了this,所以在MovePoint函数中便显式的写成:
void MovePoint(int a, int b) { this->x +=a; this-> y+= b;}
即可以知道,point1调用该函数后,也就是point1的数据成员被调用并更新了值。
即该函数过程可写成 point1.x+= a; point1. y + = b;

 

4. 关于this指针的一个精典回答:
当你进入一个房子后,
你可以看见桌子、椅子、地板等,
但是房子你是看不到全貌了。

对于一个类的实例来说,
你可以看到它的成员函数、成员变量,
但是实例本身呢?
this是一个指针,它时时刻刻指向你这个实例本身
this指针和相关的用处——C++ 阅读详情

相关推荐

从零到一:在K210上实现YOLO模型在线训练与部署全流程

本文详细介绍了在K210芯片上实现YOLO模型在线训练与部署的全流程,涵盖数据采集、模型优化、量化转换及内存管理等关键环节。通过实战案例和代码示例,帮助开发者高效利用K210的超低功耗特性与YOLO模型的实时检测能力,适用于边缘计算和物联网应用场景。

weixin_29094539的博客 350

C++中this指针的作用以及用法详解

为什么引用this指针? 当我们在类中定义了一个变量,同时又在类成员函数中定义了同一个变量时,也就是变量名重复时,但是我们要想使用类中的定义的变量,此时就需要this指针了。 1.this指针的作用 指针存在于类的成员函数中,指向被调用函数类实例的地址。  一个对象的this指针并不是对象本身的一部分,不会影响sizeof()的结果。 this指针的作用域是在类内部,当在类的非静态成员函

深海一诺 3万+

Cluster Computing投稿

在overleaf中新建picins.sty文件,该文件是导入的包在.tex文件中添加以下内容\usepackage{picins}%实现作者简介%下边这块有几个人复制几段\vspace{0\baselineskip} %这一行控制作者间隔,可视情况改数字!!!!!!!!

这里是萤石ym的学习路途,努力搬砖! 5534

this指针

是用构造函数初始化对象p,并将30作为参数传递给构造函数。通常在表达式中用来创建临时对象,尤其是在赋值操作符中。

qq_46243318的博客 1185

用豆包+Skill从零制作AI漫剧:分镜、画面、配音到成片全流程

AI漫剧作为一种新兴内容形态,结合AI绘画与AI视频生成技术,正在改变短视频创作方式。其核心原理是利用提示词工程,将创意转化为结构化分镜脚本,再通过豆包等AI助手的Skill能力,将重复的脚本生成和分镜拆解流程固化为可复用的指令模板,从而大幅降低从构思到成品的生产门槛。这种模式无需剧组、演员和实景拍摄,让个人创作者也能借助图像生成、TTS配音与剪辑合成工具,批量化地生产剧情短片,适用于短视频平台连载、商业定制与个人IP打造。围绕豆包+Skill这条主线,从选题、剧本写作、分镜表设计,到画面提示词生成、视频片

weixin_29048309的博客 1495

大语言模型在构建UNSPSC 分类数据中的应用

UNSPSC 是联合国标准产品和服务代码。本文研究如何利用大语言模型生成分类系统的分析

姚家湾博客 1861

C++中的This指针

一、This指针的介绍     C++中使用This指针来指向用来调用成员函数的对象。一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函

u012103747的专栏 2880

1998年高教社杯全国大学生数学建模竞赛 B 题:《灾情巡视路线》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 883

This指针的作用

1、用于区分参数和成员变量同名的情况 比如下面这段代码中: class Person { public: Person& Person_age_add(Person & p) { this->m_age += p.m_age; return *this; } //当需要返回对象的时候,我们通常是需要返回当前对象,可以通过return * this的方式,同时注意类应当是引用 Person(int m_age) { this->m_age = m_

weixin_39147178的博客 954

Android 64位支持的坑:诡异的文件名问题

最近在尝试发布我的Android应用程序的更新时,遇到了一个令人困惑的64位错误。本文将详细讲解这个问题的产生原因及解决方法,供大家参考。

m0_74337424的博客 123

爬虫反爬:一文掌握 BotBrowser 的原理和使用(能绕过很多验证码的指纹浏览器)

BotBrowser是使用经过修改的Chromium内核(修改Chromium的C++源代码)的隐形浏览器,可靠地绕过Cloudflare、Shape、PerimeterX、Datadome、Akamai、Kasada、hCaptcha和reCAPTCHA。BotBrowser是一个跨平台的自动化工具,它重新定义了web自动化。专为爬虫、RPA(机器人流程自动化)和 Web 测试设计。与 Puppeteer/Selenium 不同,它通过无头模式(Headless)和API 级控制。

数据知道的博客 1万+

C++l里this指针的一个用处

如果一个类的非静态成员访问非晶态成员变量的时候,如果有遇到形参和实参的变量名是一样的时候,this指针的作用就显示出来,可以用this指针指向成员变量! 见代码#include using namespace std; class temp { public: void set(int num) { // num = num; this->num = num; }

YH_24H的博客 507

044.树莓派4B部署YOLO:从系统烧录到模型运行

《树莓派4B部署YOLOv8实战笔记》摘要:本文详细记录了在ARM架构树莓派4B上部署YOLOv8的全流程。关键点包括:必须使用64位系统并手动编译OpenCV(禁用FFMPEG、开启NEON优化);模型需在x86转换为TFLite格式(分辨率不超过320×320);推理代码使用tflite_runtime替代TensorFlow以减少内存占用;针对USB摄像头卡顿、内存泄漏等典型问题给出了解决方案。

2603_95664987的博客 169

C++ primer this指针

C++类中this指针的理解 先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指...

yuanxun4683的博客 238

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C++面向对象的程序设计2——this指针的用处

1. 在自定义构造函数中使用;2. 在对象的比较函数中使用;

xxwl123的博客 231

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

this指针那些事儿

目录this指针那些事1.this指针 this指针那些事 1.this指针 相信在坐的很多人,都在学Python,对于Python来说有self,类比到C++中就是this指针,那么下面一起来深入分析this指针在类中的使用! 首先来谈谈this指针的用处: (1)一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。 (2)this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写

自动驾驶行业学习、交流 248

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C++中this指针

前言 先要理解class的意思。 class应该理解为一种类型,象int,char一样,是用户自定义的类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解this 的类型应该是myclass *,而对其的解引用*this就应该是一个myclass类型的变

qq_34823218的博客 901

[转]C++中this指针理解汇总以及问题和解答

trackback:http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1652505先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像

小π读书笔记 751

C++中this指针的用法详解

转自http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处:   一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this

kkForWork的专栏 592

大雄的this指针学习笔记

写在前面, 这是我读其他人的文章写下的笔记,第一版和原文几乎相同。侵联删, 后续我也会加入我在其他地方学到的相关的东西,也就是说,这是我自己的一个学习笔记而已。 原文链接:https://github.com/Light-City/CPlusPlusThings/tree/master/basic_content/this 1、this指针的含义 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。 #in

Nobita_Nobi的博客 215

C++中 this 指针用法详解

转自:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处:   一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有...

weixin_33725272的博客 158

C++学习笔记——this指针

this指针 this 每个成员函数中都隐藏着一个this的参数,指向当前的对象,并不是指向类。 另外,静态函数和friend函数都不属于成员函数,所以它们就没有this参数。 静态函数 静态函数是类的成员函数,属于类不属于具体某一个对象,存放于全局区,所有类的对象都共享该静态函数 理解 先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型...

上帝禁区 241

c++中this指针理解(转载)

C++类中this指针的理解 先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指...

自动驾驶行业学习、交流 165

C++ this指针的理解

先要理解class的意思。class应该理解为一种类型,象 int,char一样,是用户自定义的类型。虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的...

clemente的博客 99
上一篇: 关于内存对齐问题(一)
下一篇: C++ 什么是智能指针?
socketwlazly
博客等级 码龄16年 4粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值