欢迎光临散文网 会员登陆 & 注册

this指针

2022-09-21 07:30 作者:GXTon_阿通  | 我要投稿

同一个类中,不同的对象.
比如:"小狗"的类中有,黑狗和白狗.
那么"黑狗"和"白狗"实际上运行的代码都是"小狗"这个类的,
也就是两者,运行的代码有一部分都是相同的,比如有一个相同的函数.
黑白狗中的成员函数,如何知道该运行"黑狗"参数还是"白狗"参数.
这里靠的就是this指针了.

每个对象都有一个this指针,
黑狗和白狗都有各自的this指针.
this指针记录了对象的内存地址.this指针也就是指向自身数据的指针.
"黑狗"的this指针指向"黑狗",
"白狗"的this指针指向"白狗",

this指针特点:
1,this指针只能在成员函数中使用.
   事实上,成员函数的第一个参数就是this指针,只不过c++隐含了.
   比如,小狗类中的run()函数,看似没有传参,实际上, run(T* const this);
   传入的T* const this 就是this指针,只不过c++帮我们简化了.

2,this指针在成员函数开始前进行构造,在成员函数结束后清除.

3,this 指针会因编译器不同而有不同的放置位置。可能是栈,也可能是寄存器,甚至全 局变量。


this指针的评论 (共 条)

分享到微博请遵守国家法律