C++(this指针)
在 C++ 中,this
指针是一个特殊的指针,它指向当前对象的实例。
在 C++ 中,每一个对象都能通过 this
指针来访问自己的地址。
this
是一个隐藏的指针,可以在类的成员函数中使用,它可以用来指向调用对象。
当一个对象的成员函数被调用时,编译器会隐式地传递该对象的地址作为 this
指针。
友元函数没有 this
指针,因为友元不是类的成员,只有成员函数才有 this
指针。
#include <iostream>
class MyClass {
public:
void printAddress() {
std::cout << "Address of the object: " << this << std::endl;
}
void printValues(int x, int y) {
// 使用 this 指针访问成员变量
std::cout << "Values in the object: " << this->x << ", " << this->y << std::endl;
// 访问传递进来的参数
std::cout << "Values passed as arguments: " << x << ", " << y << std::endl;
}
private:
int x = 0;
int y = 0;
};
int main() {
MyClass obj1, obj2;
// 调用成员函数,传递 this 指针
obj1.printAddress();
obj2.printAddress();
// 调用成员函数,使用 this 指针访问成员变量
obj1.printValues(1, 2);
return 0;
}
Address of the object: 0x7ffeefb3d2e8
Address of the object: 0x7ffeefb3d2f0
Values in the object: 0, 0
Values passed as arguments: 1, 2
在这个例子中:
this
指针用于在成员函数printAddress()
中打印对象的地址。- 在成员函数
printValues()
中,使用this
指针访问对象的成员变量x
和y
,并且也展示了如何访问传递给函数的参数x
和y
。
需要注意的是,this
指针只能在非静态成员函数中使用,因为静态成员函数是与类本身相关,而不是与类的具体实例相关。在静态成员函数中,this
指针是无效的。
class MyClass {
public:
static void staticFunction() {
// 在静态成员函数中,this 指针无效
// 以下代码会导致编译错误
// std::cout << "Address in static function: " << this << std::endl;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-12-15 Python collections.deque()
2021-12-15 Python startswith()、endswith()
2021-12-15 Python os.listdir()