C++中this指针
来源:互联网 发布:看图学单词知乎 编辑:程序博客网 时间:2024/05/16 06:03
初学C++,刚接触的一个很重要的东西就是this指针。
this指针,是类的成员函数所独特具有的一类指针。它自动生成在函数的第一个参数,且自动隐蔽。this指针的作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。
下面简单介绍一下this指针是如何使用的
include
using namespace std;
class Student
{
private:
char _name[20];
char _gender[10];
int _age;
public:
void InitStudent(Student* p, char* name, char* gender, int age)
{
*p->_name = *name;
*p->_gender = *gender;
p->_age = age;
}
};
int main()
{
Student A;
A.InitStudent(&A, “Peter”,”boy”,18);
return 0;
}
当A学生调用InitStudnet函数时,即将A学生的地址传递给了this指针。
InitStudnet函数的原型应该是 void InitStudnet(Student this,Student p, char* name, char* gender, int age);第一个参数是指向该类对象的一个指针,我们在定义成员函数时没看见是因为这个参数在类中是隐含的。这样A的地址就传递给了this。
下面总结一下关于this指针的要点
1.this指针的类型是*const
2.它不占sizeof的大小
3.this的作用域在类成员函数的内部(不严谨)
4.是类成员函数第一个默认隐藏函数,编译器自动维护传递
关于_thiscall的调用约定
1._thiscall只能够用在类的成员函数上。
2.参数从右向左压栈
3.如果参数个数确定,this指针通过ecx传递给被调用着;如果参数不确定,this指针在所有参数被压栈后压入堆栈。
4.对参数个数不定的,调用者清理堆栈,否则函数自己清理堆栈。
this指针是可能为空的。
- 【C/C++】this指针
- C++this指针、智能指针
- 【C++】this 指针
- C++this指针
- C++this指针
- C++this指针
- C++this指针
- C++this指针
- c++this指针
- C++this指针
- C++this指针
- C++this指针(二)
- C++-this指针
- c++this指针
- C++this指针
- C ++的this指针
- C++this指针详解
- C++this指针
- CAN网络学习总结
- Android 判断某个Intent是否可用
- SEL的简单解释
- js写圆形动态进度条圆形指示器,动画怎么实现,进度条变色,radialIndicator.js的使用说明用法
- 为不同的环境的配置设置的WebPack
- C++中this指针
- NIO核心框架介绍
- mysql 从某 id 开始,连续查询 10 条数据
- STM32 USB转TTL串口
- linux学习笔记002
- Unity 网格合并
- textview中点击效果实现,比如点击textview中实现图片和文字的颜色变化(类似于button)
- java知识汇总(持续更新)
- 视音频数据处理入门:RGB、YUV像素数据处理