c++中class 中的this指针
来源:互联网 发布:茗记4知乎 编辑:程序博客网 时间:2024/06/06 19:09
1.this指针的经典描述:
当你进入一个房子后,
你可以看见桌子、椅子、地板等,
但是房子你是看不到全貌了。
对于一个类的实例来说,
你可以看到它的成员函数、成员变量,
但是实例本身呢?
this是一个指针,它时时刻刻指向你这个实例本身
2.this指针的使用:
一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;
另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。
3.this 指针的特点:
1)this只能在成员函数中使用。指向被调用函数所在的类实例的地址
全局函数、静态函数都不能使用this,
2)this在成员函数的开始前构造,在成员函数的结束后清除。
生命周期:同任何一个函数的参数一样
实际上,成员函数默认第一个参数为T * const this。
当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。
如:class A
{
public:
int func(int p)
{}
};
其中,func的原型在编译器看来应该是: int func(A * const this,int p);
this指针被隐含地声明为: X *const this,这意味着不能给this 指针赋值;
3)一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。
4)我们只有获得一个对象后,才能通过对象使用this指针
在C++中 ,类和结构是只有一个区别的:类的成员默认是private,而结构是public。this是类的指针,如果换成结构,那this就是结构的指针了。
- c++中class 中的this指针
- C++ class 中隐含的this指针
- 详解C++中的this指针
- 细说 class类中的this指针与 构造函数
- 【C/C++】this指针
- JavaScript中的this指针
- C++中的this指针
- C++中的this指针
- C++中的this指针
- c++中的this指针
- JavaScript中的this指针
- C++中的this指针
- C++中的this指针
- C++中的this指针
- C++中的this指针
- C++中的this指针
- C++中的this指针
- C++中的this指针
- Java Executor并发框架(十二)Executor框架线程池BlockingQueue的三种实现区别
- HDOJ acm 1022 火车进站出站(栈系列)
- PostgreSQL学习笔记---1 源码编译安装PostgreSQL
- 三库 — 信息库 数据库 数据仓库
- hdu 1250 Hat's Fibonacci
- c++中class 中的this指针
- 多线程下单例模式的安全性
- libevent中的tail queue详细分析
- NLP学习资料
- hdoj1847(巴什博弈)
- 小米 note手机 选择本地视频 获取cursor 为空
- 引用类型和基本类型的区别与联系
- memcached在widdows环境下的详细剖析
- C 数组插入排序