换个花样玩C++(10) 网易老司机带你吃透this指针的多种玩法,完美绕过多个陷阱

           在C++使用过程中,我们经常会和this指针打交道,或许是使用习惯,却很少直接通过this指针来访问他的成员变量或者成员函数,这篇文章我们来抛出几个问题:this指针是什么时候创建的、this指针又是什么时候销毁的、this指针为什么不占用类空间大小、什么情况下必须显示使用this指针?使用多态this又是如何识别他属于哪个类的、赋值运算符为什么要返回this指针、 带着问题我们来研究分析下this指针到底是什么,使用过程中干了什么事?

this指针在哪些场合出现?

首先看一段代码,如果你对this指针很熟悉,但我认为你看到这段代码可能会有点头晕,你有没有发现什么问题:

示例1

#include <iostream>
using namespace std;
class Sample
{
    int m_a[sizeof(*this)];   
    int sz = sizeof(*this);  

    void func()
    {
        int b[sizeof(*this)];    

        struct Inner
        {
            int c[sizeof(*this)];   
        };
    }
};
int main() { 
      cout << sizeof(Sample) << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值