服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++中this指针理解及作用

C++中this指针理解及作用

2022-12-12 12:28Python编程学习圈 C/C++

这篇文章主要介绍了C++中this指针理解及作用,文章通过举例展开相关详细内容,具有一定的参考价值,需要的小伙伴可以参考一下

01、C++程序到C程序的翻译

想要理解C++语言中的this指针,下面我们做一个举例,我们要先把下面的C++代码转换成C代码:

C++中this指针理解及作用

(1)大家知道,C语言中没有类定义class关键词,但是有跟class类似的定义关键词,就是struct结构体定义。m_height变量是Tree类的成员变量,那么我们就可以把Tree类和成员变量翻译成下面的C代码:

C++中this指针理解及作用

(2)SetHeight函数是Tree类的成员函数,但是C程序里面没有成员函数这个概念的,所以只能把成员函数翻译成全局的函数:

C++中this指针理解及作用

那为什么还要再加个this指针呢?我们接着继续往下看。

(3)接下来把C++中的main函数翻译成C程序,是下面这样的:

C++中this指针理解及作用

所以最终把上面的C++程序转变为C程序的代码如下:

C++中this指针理解及作用

加上SetHeignt函数的第一个参数this指针的作用,就是为了给结构体Tree域里的变量赋值。

 

02、this指针的作用

this指针的作用就是指向成员函数所作用的对象,所以非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针。

 

03、this指针和静态成员函数

静态成员函数不能使用this指针,因为静态成员函数相当于是共享的变量,不属于某个对象的变量。

 

04、小结

(1)通过将C++程序翻译成C程序的方式,来理解this指针,其作用就是指向非静态成员函数所作用的对象,每个成员函数的第一个参数实际上都有个默认this指针参数;(2)静态成员函数无法使用this指针。

到此这篇关于C++中this指针理解及作用的文章就介绍到这了,更多相关C++ this指针 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7032160217089441823

延伸 · 阅读

精彩推荐
  • C/C++C++实现小型图书管理系统

    C++实现小型图书管理系统

    这篇文章主要为大家详细介绍了C++实现小型图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    GroovRain9882022-10-18
  • C/C++C++控制台循环链表实现贪吃蛇

    C++控制台循环链表实现贪吃蛇

    这篇文章主要为大家详细介绍了C++控制台循环链表实现贪吃蛇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    PPPeyton11802021-09-03
  • C/C++C语言实现扫雷游戏简易版

    C语言实现扫雷游戏简易版

    这篇文章主要为大家详细介绍了C语言实现扫雷游戏简易版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    看满山暴雨打落花一定很10032021-10-08
  • C/C++C++11中std::async的使用详解

    C++11中std::async的使用详解

    这篇文章主要介绍了C++11中std::async的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着...

    fengbingchun5762021-08-12
  • C/C++Opencv二帧差法检测运动目标与提取轮廓

    Opencv二帧差法检测运动目标与提取轮廓

    这篇文章主要为大家详细介绍了Opencv使用二帧差法检测运动目标与提取轮廓,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以...

    洛基Nickey4412021-08-27
  • C/C++VsCode配置C++/Cmake的步骤详解

    VsCode配置C++/Cmake的步骤详解

    本文分步骤给大家介绍VsCode配置C++/Cmake的方法,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...

    Gavynlee5762021-12-03
  • C/C++C++类重载函数的function和bind使用示例

    C++类重载函数的function和bind使用示例

    这篇文章主要介绍了C++类重载函数的function和bind使用示例,帮助大家更好的理解和使用c++,感兴趣的朋友可以了解下...

    huik10992021-10-19
  • C/C++C语言操作符基础知识图文详解

    C语言操作符基础知识图文详解

    这篇文章主要以图文结合的方式为大家详细介绍了C语言位运算基础知识,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助...

    落因为花开过10892021-12-20