C++: this指针的用法,相关知识点

1. this指针只能在类的成员函数中调用,表示当前对象的地址;

void data::set_month(int mn)
{
    month = mm;
    this->month = mn;
    (*this).month = mn;//三者等价
}

2. this指针只能在类的成员函数中使用,全局函数和静态函数都不能使用this;

    实际上,类的成员函数默认的第一个参数为   T* const register this,

    针对class A{public: int func(int p){}},

    实际上func原型在编译器看来为: int func(A* const register this, int p);

3. this指针在类的成员函数开始之前构造,在类的成员结束后清除,这是this指针的生命周期。

    当调用一个类的成员函数时,编译器将类的指针作为函数this参数传递过去,如:

A a;
a.func(10);

此时,编译器将会编译成:A::func(&a, 10);

编译器通常会对this指针做一些优化,因此,this指针的传递效率比较高,像VC是由ecx寄存器来传递this指针参数的。

4. this指针引编译器不同,放置的位置不同,可能是栈,可能是寄存器,甚至是全局变量;

5. this指针是通过类的成员函数的首参数来传递的;

6. 【注】

                            

7. 资源下载链接:https://download.youkuaiyun.com/download/sss_369/10762986

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值