1. 背景
在 C++ 中,this 指针是一个特殊的指针,它指向当前对象的实例。
在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。
this是一个隐藏的指针,可以在类的成员函数中使用,它可以用来指向调用对象。
当一个对象的成员函数被调用时,编译器会隐式地传递该对象的地址作为 this 指针。
友元函数没有 this 指针,因为友元不是类的成员,只有成员函数才有 this 指针。
2. 实例
#include <iostream>
class MyClass {
private:
int value;
public:
void setValue(int value) {
this->value = value;
}
void printValue() {
std::cout << "Value: " << this->value << std::endl;
}
};
int main() {
MyClass obj;
obj.setValue(42);
obj.printValue();
return 0;
}
this的作用就是指向成员函数所作用的对象。
3. this指针的作用
非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针。
对比:
4. this指针和静态成员函数
- 静态成员函数中不能使用this指针;
- 因为静态成员函数并不具体作用于某个对象;
- 因此,静态成员函数的真实的参数的个数,就是程序中写出的参数个数。
站在巨人的肩上
【1】北京大学信息技术学院《程序设计实习》