类成员的函数指针”转换成 普通函数指针 C++代码示例
时间: 2024-05-10 17:12:23 浏览: 167
在 C++ 中,类成员函数指针和普通函数指针是不同类型的指针,需要进行转换才能相互使用。下面是一个示例代码,演示了如何将类成员函数指针转换为普通函数指针:
```
#include <iostream>
class MyClass {
public:
void myFunction(int x) {
std::cout << "MyClass::myFunction called with " << x << std::endl;
}
};
int main() {
MyClass obj;
// 声明一个指向 MyClass::myFunction 的函数指针
void (MyClass::*memberFuncPtr)(int) = &MyClass::myFunction;
// 转换为普通函数指针
void (*funcPtr)(MyClass*, int) = reinterpret_cast<void (*)(MyClass*, int)>(memberFuncPtr);
// 通过普通函数指针调用 MyClass::myFunction
funcPtr(&obj, 42);
return 0;
}
```
在上面的示例代码中,我们首先声明了一个指向 `MyClass::myFunction` 的类成员函数指针 `memberFuncPtr`。然后,我们使用 `reinterpret_cast` 进行类型转换,将 `memberFuncPtr` 转换为普通函数指针 `funcPtr`。最后,我们使用 `funcPtr` 调用 `MyClass::myFunction`。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)