在C++使用过程中,我们经常会和this指针打交道,或许是使用习惯,却很少直接通过this指针来访问他的成员变量或者成员函数,这篇文章我们来抛出几个问题:this指针是什么时候创建的、this指针又是什么时候销毁的、this指针为什么不占用类空间大小、什么情况下必须显示使用this指针?使用多态this又是如何识别他属于哪个类的、赋值运算符为什么要返回this指针、 带着问题我们来研究分析下this指针到底是什么,使用过程中干了什么事?
this指针在哪些场合出现?
首先看一段代码,如果你对this指针很熟悉,但我认为你看到这段代码可能会有点头晕,你有没有发现什么问题:
示例1
#include <iostream>
using namespace std;
class Sample
{
int m_a[sizeof(*this)];
int sz = sizeof(*this);
void func()
{
int b[sizeof(*this)];
struct Inner
{
int c[sizeof(*this)];
};
}
};
int main() {
cout << sizeof(Sample) << endl;
}