浅析C++中this指针的理解以及作用

01
c++程序到c程序的翻译
想要理解c++语言中的this指针,下面我们做一个举例,我们要先把下面的c++代码转换成c代码:
(1)大家知道,c语言中没有类定义class关键词,但是有跟class类似的定义关键词,就是struct结构体定义。m_height变量是tree类的成员变量,那么我们就可以把tree类和成员变量翻译成下面的c代码:
(2)setheight函数是tree类的成员函数,但是c程序里面没有成员函数这个概念的,所以只能把成员函数翻译成全局的函数:
那为什么还要再加个this指针呢?我们接着继续往下看。(3)接下来把c++中的main函数翻译成c程序,是下面这样的:
所以最终把上面的c++程序转变为c程序的代码如下:
加上setheignt函数的第一个参数this指针的作用,就是为了给结构体tree域里的变量赋值。
02
this指针的作用
this指针的作用就是指向成员函数所作用的对象,所以非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针。
03
this指针和静态成员函数
静态成员函数不能使用this指针,因为静态成员函数相当于是共享的变量,不属于某个对象的变量。
04
小结
(1)通过将c++程序翻译成c程序的方式,来理解this指针,其作用就是指向非静态成员函数所作用的对象,每个成员函数的第一个参数实际上都有个默认this指针参数;(2)静态成员函数无法使用this指针。


小米6什么时候上市?小米6配置曝光,小米6外观惊艳配置残暴已确定,小米手机超给力更新太无敌
小白也想修改美化音频?你可以试试Audacity音频编辑工具
变频器供电条件下感应电动机的温升问题剖析
详谈电连接器端接的分类、优势及工艺要求
海光3号CPU带动海光信息业绩快速增长
浅析C++中this指针的理解以及作用
MAX1722,MAX1723,MAX1724紧凑、高效、升压型DC-DC转换器
GX1101是国产首款支持DVB-S标准的卫星数字电视信道解
为什么端子线都需要定制,是什么因素影响的
浅谈医疗仪器的步进电机驱动技术
又一只元宇宙牛股被监管关注
户外监测设备的组成及仪器维护保养的基本知识
泰克嵌入式仪器荣获ARM TechCon“最佳产品奖”
第十八届“光博会”盛大召开 武汉光电子打造世界级产业集群
iPhone11ProMax和三星GalaxyNote10+哪个更耐摔
三星放弃LCD面板生产,转向更强大的QD-OLED面板?
AMEC总裁:美国希望中国芯片落后最尖端技术5代
笔记本转轴是什么意思 笔记本电脑转轴功能和形态的演变
将智能路灯视为打造智慧城市的第一里路
如何打造出一个简化版本的加密货币