前言
本文对C++中涉及的this指针进行简要的总结,具体包括this指针概述,this指针限制,this指针作用等
一、this指针是什么?
this指针是C++面向对象中类与对象所设计的一个关键的指针,它不属于类的对象而属于类本身,具体定义类似如下:
T* const this;//其中T是类的类型
二、this指针有哪些作用
1.隐式传入
当类的对象调用非静态成员函数,或者说类的非静态成员函数访问类的对象是,this指针会作为两者之间的一个隐藏的参数传入。给出一个this指针使用示例如下:
class MyClass {
private:
int value;
public:
MyClass(int val) : value(this->initialize(val)) {}
int initialize(int val) {
return val * 2; // 模拟初始化过程
}
int getValue() const {
return this->value;
}
};
int main() {
MyClass obj(10);
std::cout << obj.getValue() << std::endl; // 输出 20
return 0;
}
//在这个示例中,构造函数使用 this->initialize(val) 来初始化成员变量 value。this 指针在这里是隐式传递的,用于访问成员函数。
2.同名调用区分
当在成员函数中,使用的变量名跟类的成员变量同名时,可以借助this进行区分
this->val = val;//val是成员函数的局部变量而this->是类定义的成员变量名
三、 this指针的适用范围
this指针存在于非静态成员函数范围类的对象时,而全局函数,静态成员函数是没有this指针的。