this指针
来源:互联网 发布:石狮优浮网络会所 编辑:程序博客网 时间:2024/06/06 09:25
一. this指针是什么?
this是指向实例化对象本身时候的一个指针,里面存储的是对象本身的地址,通过该地址可以访问内部的成员函数和成员变量。this指针的作用域在类的内部,自己声明一个类的时候,还不知道实例化对象的名字,所以用this来使用对象变量的自身。在非静态成员函数中,编译器在编译的时候加上this作为隐含形参,通过this来访问各个成员。
二.this指针的属性
(1)名称属性:标识符this表示。
(2)类型属性:类类型* const(类似于类引用的类型)
(3)值属性:表示当前调用该函数对象的首地址。
(4)作用域:this指针是编译器默认传给类中非静态函数的隐含形参,所以其作用域在非静态成员函数的函数体内。
(5)链接属性:在该类作用域中,不同类的非静态成员函数中,this这个指针变量的链接属性是内部的,但其所指对象是外部的,即this变量是不同的实体,但指向对象是同一个。
(6)存储类型:this指针是由编译器生成,当类的非静态成员函数的参数个数一定时,this指针存储在ecx寄存器中;若该函数参数个数未定(可变参数函数),存放在栈中。
通过一段代码来看this指针的作用
class A{public: int get() const { return i; } void set(int x) { this->i = x; cout << "this指针保存的内存地址为:" << this << endl; }private: int i;};int main(){ A a; a.set(6); cout << "对象a所在的内存地址为:" << &a << endl; cout << "对象a所保存的值为:" << a.get() << endl; cout << endl; A b; b.set(7); cout << "对象b所在的内存地址为:" << &b << endl; cout << "对象b所保存的值为:" << b.get() << endl; return 0;}
运行结果 通过这个输出结果,我们可以看到,对象a的内存地址和this指针的一模一样,而当运行到对象b的时候,它的内存地址又和它所对应的this指针指向的内存地址一模一样了。这就说明了this指针变量记录的是当前对象的内存地址,即this指针指向当前的对象!
阅读全文
0 0
- this指针
- this指针
- this指针
- this指针
- this指针
- this 指针
- this指针
- this指针----
- this指针
- this 指针
- This 指针
- this指针
- This指针
- this指针
- this指针
- this 指针
- this指针
- this指针
- LeetCode基础-图
- Linux shell:使用AWK产生随机数/随机字符串
- 模糊查询
- Java实现excel的读与写(Apache POI)
- magento 开发 -- 入门深入理解第七章 – 自定义Magento系统配置
- this指针
- “tarjan陪伴强联通分量
- IIS配置之Web服务器被配置为不列出此目录的内容
- Docker技术这些应用场景,你知道吗?
- 欢迎使用CSDN-markdown编辑器
- FIlter(2)—案例
- Heap Sort(堆排序)
- 习题5.7
- React 实现井字棋游戏 (tic-tac-toe) 教程 (4) <译自官方文档>