c++中如何定义一个函数指针指向类中的函数
时间: 2024-03-03 16:50:51 浏览: 82
C++函数指针
在C++中,可以使用以下语法定义一个函数指针指向类中的函数:
```
class MyClass {
public:
void myFunction(int arg1, float arg2);
};
typedef void (MyClass::*FuncPtr)(int, float);
int main() {
MyClass obj;
FuncPtr ptr = &MyClass::myFunction;
(obj.*ptr)(1, 2.0);
return 0;
}
```
在上面的示例中,我们首先定义了一个名为 `MyClass` 的类,并声明了一个名为 `myFunction` 的成员函数。接下来,我们使用 `typedef` 关键字定义了一个名为 `FuncPtr` 的函数指针类型,该函数指针类型可以指向 `MyClass` 类中的成员函数,该成员函数接受一个整型参数和一个浮点型参数,返回值为 `void`。
在 `main` 函数中,我们首先创建了一个 `MyClass` 类型的对象 `obj`,然后声明了一个 `FuncPtr` 类型的指针变量 `ptr`,并将其初始化为指向 `MyClass::myFunction` 成员函数。最后,我们通过使用成员函数指针语法 `(obj.*ptr)(1, 2.0)` 来调用 `myFunction` 成员函数,传递参数 `1` 和 `2.0`。
注意,成员函数指针需要使用类实例来调用,因此我们必须首先创建一个类对象。
阅读全文