C++函数指针做类的成员
时间: 2023-11-07 11:49:27 浏览: 95
C++函数指针可以用于作为类的成员函数。在C++中,成员函数指针的类型是`typedef int (A::* pClassFun)(int, int);`,其中A是类的名称,`pClassFun`是指向A类成员函数的指针类型。成员函数指针的声明和普通函数指针有所不同,需要使用`A::*`来指定成员函数的作用域。
使用成员函数指针时,我们需要先创建一个对象,然后通过对象来调用指定的成员函数。可以使用`.*`或者`->*`运算符来调用成员函数指针所指向的函数。
例如,对于以下代码段:
```cpp
class A {
public:
int add(int a, int b) {
return a + b;
}
};
typedef int (A::* pClassFun)(int, int);
int main() {
pClassFun pointer = &A::add;
A aa;
cout << (aa.*pointer)(10, 20);
}
```
其中`pClassFun`是一个指向A类的成员函数的指针类型,`pointer`是一个指向A类的`add`成员函数的指针。在`main`函数中,我们创建了一个A类的对象`aa`,然后使用`.*`运算符来调用成员函数指针`pointer`所指向的`add`函数,并传递参数10和20,最后将结果输出到控制台。
通过使用成员函数指针,我们可以在运行时动态地选择调用不同的成员函数,这对于设计灵活的代码结构非常有用。
阅读全文