CLASS类中函数指针
时间: 2023-10-21 16:22:55 浏览: 57
在C++中,类中的函数指针是可以用来指向类成员函数的指针。需要注意的是,类成员函数指针与普通函数指针有一些不同之处。
首先,类成员函数指针的类型与类成员函数的类型相关联。假设我们有一个类`MyClass`和一个成员函数`void func(int)`,那么对应的成员函数指针类型就是`void (MyClass::*)(int)`。其中,`MyClass`是类名,`*`表示指针,`void`是返回类型,`(int)`是参数列表。
下面是一个简单的示例,演示了如何定义和使用类成员函数指针:
```cpp
#include <iostream>
class MyClass {
public:
void func(int num) {
std::cout << "Hello from func: " << num << std::endl;
}
};
int main() {
MyClass obj;
void (MyClass::*funcPtr)(int) = &MyClass::func; // 定义类成员函数指针
// 通过指针调用类成员函数
(obj.*funcPtr)(42);
return 0;
}
```
在上面的示例中,我们首先定义了一个类`MyClass`和一个成员函数`func`。然后,在主函数中,我们创建了一个`MyClass`的对象`obj`,并定义了一个类成员函数指针`funcPtr`,将其初始化为指向`func`函数。最后,我们通过指针调用了类成员函数,并输出了结果。
需要注意的是,类成员函数指针在调用时需要使用对象指针或引用来访问类成员函数。在示例中,我们使用`(obj.*funcPtr)(42)`来调用`func`函数,其中`obj`是对象,`.*`是成员访问操作符,`funcPtr`是类成员函数指针。
希望以上信息对你有帮助!如果你有其他问题,请随时提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)