this 是c++ 中的一个关键字,也是一个const 指针,它可以指向当前对象,它的作用就是可以访问类中的所以成员变量和成员函数,可以写一个简单的示例,如下。
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
///静态全局变量 限制文件作用域 当前文件
static int g_result = 0;
class chang {
public:
chang() = default;
~chang() = default;
///修饰类传数 一般配被 & 意志传递进入的参数不被函数所修改,即不允许修改
inline bool setValue(const int& va) {
static int result = va;
m_value = va;
g_result = m_value;
return true;
}
/// 修饰函数,表示不能修改类中数据成员也不能调用类的成员函数
inline int getValue() const {
return this->m_value;
}
static int getResult() {
return g_result;
}
void printfThis()
{
std::cout << " this:" << this << std::endl;
}
private:
/// 用muteable 修饰以允许该成员可以在常量函数中被修改
mutable int m_value;
};
int main()
{
chang* a = new chang;
a->printfThis();
chang* b = new chang;
b->printfThis();
delete a;
delete b;
}
从打印结构可以看出,this 是一个指针,指向了各自创建的对象,this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中。this 作为隐式形参,本质上是成员函数的局部变量,所以只能用在成员函数的内部,并且只有在通过对象调用成员函数时才给 this 赋值