this指针

本文详细解释了C++中this指针的概念及其工作原理,包括this指针的创建时机、如何通过this指针访问类成员变量以及this指针在成员函数中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)this指针是什么时候创建的?

    this在成员函数的开始执行前构造,在成员的执行结束后清除。

    采用TYPE xx的方式定义的话,在栈里分配内存,这时候this指针的值就是这块内存的地址。

    采用new的方式创建对象的话,在堆里分配内存,new操作符通过eax返回分配的地址(VC通过ecx寄存器传递this参数),然后设置给指针变量。之后去调用构造函数,这时将这个内存块的地址传给ecx。

 

2)this指针是如何访问类中的变量的?

     在C++中,类和结构只有一个区别:类的成员默认是private,而结构的成员默认是public。

     this是类的指针,如果换成结构,那this就是结构的指针了。

 

3)我们只有获得一个对象后,才能通过对象使用this指针。如果我们知道一个对象this指针的位置,可以直接使用吗?

     this指针只有在成员函数中才有定义。因此,你获得一个对象后,也不能通过对象使用this指针。所以,我们无法知道一个对象的this指针的位置(只有在成员函数里此案有this指针的位置)。当然,在成员函数里,你是可以知道this指针的位置的(可以通过&this获得),也可以直接使用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值