cpp中非静态成员函数实际上的参数个数比表面上看到的多一个,多出来的参数就是 this 指针。对吗?
时间: 2024-03-31 20:34:52 浏览: 66
是的,C++ 中非静态成员函数实际上的参数个数比表面上看到的多一个,多出来的参数就是 `this` 指针。`this` 指针指向当前对象的地址,在非静态成员函数内部可以用来访问当前对象的成员变量和成员函数。
在 C++ 中,可以通过以下两种方式来访问成员函数:
1. 通过对象来调用成员函数,例如 `obj.func()`。
2. 通过指向对象的指针或引用来调用成员函数,例如 `ptr->func()` 或 `ref.func()`。
对于第一种方式,编译器会自动将对象的地址作为隐含参数传递给成员函数,因此在非静态成员函数内部可以直接访问对象的成员变量和成员函数,无需显式传递对象的地址。
而对于第二种方式,需要显式传递对象的地址,可以使用 `this` 指针来传递。例如,在成员函数内部可以使用 `this->member` 来访问对象的成员变量,或者使用 `this->func()` 来调用对象的成员函数。
因此,可以说非静态成员函数实际上的参数个数比表面上看到的多一个,多出来的参数就是 `this` 指针。
阅读全文