C++中this指针的本质
来源:互联网 发布:电商公司数据分析 编辑:程序博客网 时间:2024/06/05 21:53
一直以来对C++中的this不理解,只知道在构造函数中,如果构造函数的参数和类成员的名字一样的话,就可以用this指针来区分,如:
this->a = a;
一直以来都有这个疑问:this究竟是什么?我们明明没有定义这个this,但是我们可以直接用而编译器不会报错。今天来解决这个疑问。
从刚才的代码中,我们用”this->”而不是”this.”就说明this是一个指针,而我们知道,在C、C++中,指针就是地址,因此很容易想到,this也是一个地址。但是问题来了,this是谁的地址呢?我们看下面这个很简单的C++程序:
#include <iostream>class A{public: A();};A::A(){ std::cout << "this " << this << std::endl;}int main(){ A a; std::cout << "&a " << &a << std::endl; return 0;}
大家先在自己的脑袋中运行一下这个程序,然后看自己运行的结果与下面的是不是一样。
我们可以看到,this和&a的结果是一样的。由此可以看出,this就是a的地址,而a是类A的一个对象,占用了sizeof(A)的内存空间。
执行到A a这一句的时候,其实就生成了类A的一个对象,并同时为这个对象分配了sizeof(A)的内存空间,其实这个时候this也生成了,this就指向了这段内存空间,如下图所示:
1 0
- C++中this指针的本质
- C ++的this指针
- C/C++ 类的本质 和this
- C语言的本质(10)——指针本质
- C/C++ 中指针的本质(1)——指针之基础入门篇
- C/C++ 中指针的本质(2)——指针之高级篇
- 深入浅出--C\C++指针的本质
- C++this指针的理解
- C++this指针的理解
- C++this指针的用法
- 【c++】this指针的使用
- 【C++】隐含的this指针
- C指针本质
- 【C/C++】this指针
- 指针的指针的本质
- 指针的本质
- 指针的本质
- 26-指针的本质
- 深入JavaScript(7)S.O.L.I.D五大原则之开闭原则OCP
- 用OC语言完成简易通讯录(实现增删改查)功能.
- HDU 1394 Minimum Inversion Number
- UVA 694 The Collatz Sequence
- 深入JavaScript(8)S.O.L.I.D五大原则之里氏替换原则LSP
- C++中this指针的本质
- 引跑科技助力传统企业构建大数据价值体系
- Java模板方法的设计模式
- 那些年满天飞的bug(1)
- linux下运行c或c++
- HDOJ-1863-畅通工程
- 推荐系统——冷启动问题
- php根据经纬度计算距离和方向
- char,varchar,nvarchar区别