声明一个参数为int型、返回值为long 型的函数指针;声明类A的一个成员函数指针,其参数为int型,返回值long型。
时间: 2024-09-25 20:17:51 浏览: 41
怎样写一个有可变参数的函数?
在C++中,你可以通过函数指针来处理不同类型的操作。一个参数为`int`类型,返回值为`long`类型的函数指针可以这样声明:
```cpp
typedef long (*LongIntFunction)(int); // 声明函数指针类型,接受int参数并返回long结果
```
对于类`A`中的成员函数指针,假设类`A`有一个名为`myMethod`的成员函数满足这个参数和返回类型的要求,你可以在类`A`内部或者外部这样声明:
```cpp
class A {
public:
// 类A中的成员函数,假设名称为myMethod
virtual long myMethod(int arg) = 0;
// 成员函数指针
LongIntFunction myMemberFuncPtr;
};
// 或者在类A的外部
void setMemberFuncPtr(A* a, void (A::*LongIntMemberFn)(int)) {
a->myMemberFuncPtr = &A::myMethod;
}
```
这里需要注意的是,如果`A`类的成员函数`myMethod`不是`virtual`的,那么`myMemberFuncPtr`只能指向同类型的非成员函数,而不能指向`A`类的其他实例的`myMethod`。
阅读全文