0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++封装:this指针

如意 来源:CSDN 作者:cherrydreamsover 2020-06-29 14:37 次阅读

this指针

特性

(1)this指针的类型:类类型* const。

(2)this指针并不是对象本身的一部分,不影响sizeof的结果。

(3)this是一个指针,它时时刻刻指向对象的实例。

(4)this指针的作用域在类成员函数的内部(不严谨)。

(5)this指针是类成员函数的第一个默认隐含参数,编译器自动维护传递。

(6)只有类的非静态成员函数中才可以使用this指针,其它成员函数都不可以。

_thiscall调用约定

(1)_thiscall只能够在类的成员函数上;

(2)参数从右向左压栈;

(3)如果参数个数确定,this指针通过ecx传给被调用者。如果参数不确定,this指针在所有参数被压栈后压入堆栈;

(4)参数个数不定的,调用者清理堆栈,否则函数自己清理堆栈。

this指针是否为空?

C++封装:this指针

当将空的this传给test函数时,test没有调用任何函数,因此执行此函数,没有报错;

当把空的this传给change函数时,通过this指针调用this-》name,由于this是空的,因此会出错。

总结:

(1)NULL对象指针可以调用成员函数;

(2)通过对象调用成员函数,对象的指针会被传入函数中,指针名称为this;

(3)NULL对象指针调用成员函数时,只要不访问此对象的成员变量,则程序正常运行;

(4)NULL对象指针调用成员函数时,一旦访问此对象的成员变量,则程序崩溃。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 封装
    +关注

    关注

    123

    文章

    7239

    浏览量

    141041
  • 指针
    +关注

    关注

    1

    文章

    469

    浏览量

    70360
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72880
  • this
    +关注

    关注

    0

    文章

    5

    浏览量

    3230
收藏 人收藏

    评论

    相关推荐

    浅谈C/C++里的指针

    指针是C和C++中的难点和重点。指针是C的灵魂。我不想重复大多数书上说得很清楚的东西,只是把我看过的书中说得不清楚或没有说,而我又觉得我理解得有点道理的东西写出来。目的是:1、通过写这些东西,把我脑袋中关于C的模糊的知识清晰化。
    发表于 06-28 10:21 302次阅读

    JAVA和C++区别

    Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者, 而兼容了C
    发表于 10-10 14:50

    关于C++中函数指针的使用

    关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用。 //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char
    发表于 07-13 03:51

    Java和C++的区别

    Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者, 而兼容了C
    发表于 09-13 16:02

    MATLAB代码转c++封装dll供labview调用

    MATLAB可以通过指针读取buffer里面的图像吗,最近涉及MATLAB与labview混合编程,需要将MATLAB代码转成c++封装成dll。其中MATLAB代码部分卡在了不知道如何通过
    发表于 06-11 11:28

    C指针详解

    我想对很多学习C语言的新手来说,指针无疑是一个难点。但是,我觉得指针也是C语言特别重要的一个特性。也许,你在除了C
    发表于 12-29 07:20

    请问STM32 C++底层封装怎么实现?

    DMA和中断为什么使用指针?请问STM32 C++底层封装怎么实现?
    发表于 11-22 06:08

    C和指针_C与C++经典著作

    C和指针_C与C++经典著作,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-16 18:32 0次下载

    C++实验--指针

    C++实验--指针
    发表于 12-30 14:50 1次下载

    C++指针”学习建议

    C++指针”学习建议
    发表于 03-31 15:53 3次下载

    为什么使用指针C++中的“指针

    为什么使用指针?因为在操作大型数据和类时,指针可以通过内存地址直接访问数据,可避免在程序中复制大量的代码,因此指针的效率最高。一般来说,指针会有3大用途
    的头像 发表于 10-04 10:33 4769次阅读

    C++指针的学习建议

     一。对于众多人提出的c/c++指针难学的问题做个总结:
    发表于 11-07 17:13 8次下载
    <b class='flag-5'>C++</b><b class='flag-5'>指针</b>的学习建议

    C和C++经典著作《C和指针

    C和C++经典著作《C和指针
    发表于 01-17 09:46 0次下载

    C++中有函数指针还需要std::function嘛

    C/C++中可以使用指针指向一段代码,这个指针就叫函数指针,假设有这样一段代码:
    的头像 发表于 02-15 14:13 335次阅读
    <b class='flag-5'>C++</b>中有函数<b class='flag-5'>指针</b>还需要std::function嘛

    C++的引用和指针

    之前的文章我们已经介绍了C++中的基本类型如int,bool和double等,除了基本类型C++还有一些更复杂的数据类型复合类型,所谓的复合类型就是通过其他类型定义的类型,本篇文章我们将会着重介绍C++的复合类型引用和
    的头像 发表于 03-17 14:00 423次阅读