如何理解c++this指针
来源:互联网 发布:艾克里里用什么软件 编辑:程序博客网 时间:2024/04/30 14:46
this指针的创建
创建于成员函数开始执行前,执行完后清除,而且它只能在静态成员函数中有用,其它函数调用不了this指针。
this指针的具体指向对象
指向对象的首地址
来看代码
#include <iostream>#include <string.h>using namespace std;class student{public: void Initstudent(char * name, char* gender, int age) { strcpy(_name, name); strcpy(_gender, gender); _age = age; } void Printstudent() { cout << _name << "\n" << _gender << "\n" << _age << endl; }private: char _name[20]; char _gender[4]; int _age;};int main(){ student s1; s1.Initstudent("小尚", "boy", 20); /*void Initstudent(student *const this,char *name ,char *gender,int age);其实这才是真正的传参方式,也就是this指针的真正存在方式*/ s1.Printstudent();}
分析
在main()函数中给了一个学生s1,用初始化函数给出名字性别年龄,当然这是我室友的名字,随手拿来用了,那么接下来就是程序执行打印函数,而且很理想在屏幕上输出了室友的信息,现在需要考虑的就是为什么s1的这些信息可以就这样输出来,这里便有了this指针,它会指向s1的地址,就像它知道我室友家在哪,然后让初始化函数去我室友家并给我室友起了名字给了年龄什么的,这里好像有点不太恰当,对 在程序没输出结果前我们不知道this指向的那个地址住着的到底是谁,是指针带着函数找到那个地址并给了住在那个地址里的人如上面的一些信息
this指针的传参方式及特性
1:参数压栈:当成员函数的参数为可变时(遵循_cdecl调用约定)
2:ecx寄存器:当成员函数的参数固定时(遵循_thiscall调用约定)
this指针的特性:
1:类型:类类型*const
2:this指针并不是类本身的一部分,不影响sizeof(类)的大小 .
3:this指针是非静态成员函数的一个隐含指针形参,是编译器自己给的,不能由程序员手动添加.
4:this 指针可以为NULL .
5:this 指针和引用的底层实现一样但是类的概念在引用之前提出来所以没有用引用代替this指针.
0 0
- 如何理解c++this指针
- C++this指针的理解
- C++this指针的理解
- C++this指针的理解和用法
- C++this指针的理解和用法
- 理解类this指针
- js-this指针理解
- 理解this指针
- This指针的理解
- this指针的理解
- 理解this指针
- this指针的理解
- 理解this指针
- this指针的理解
- 【C/C++】this指针
- C++this指针、智能指针
- 【C++】this 指针
- C++this指针
- (2.1.1.6)一看你就懂,Java中的ClassLoader详解
- se错题集锦(二)
- 微信公众号项目笔记 二
- 面试感悟----一名3年工作经验的程序员应该具备的技能
- oracle之存储过程5-查询结果保存到变量中去
- 如何理解c++this指针
- 彻底理解 JS 中 this 的指向
- 去掉CodeIgniter(CI)默认url中的index.php
- AndroidStudio 编译C/C++文件生成SO文件
- servlet3异步处理请求
- Hibernate load()与get()区别
- Java中String,StringBuffer和StringBuiled的区别
- 菜鸟的Java之路:第一集
- 深度学习数据集——MNIST