c++ 重载函数的函数指针
时间: 2023-07-26 17:08:48 浏览: 125
C++中可以定义函数指针类型,并且可以将函数指针作为函数参数进行传递。重载函数的函数指针可以使用函数名重载的方式来定义。
例如,有如下的重载函数:
```cpp
int add(int a, int b);
float add(float a, float b);
```
可以定义一个函数指针类型,如下:
```cpp
typedef int (*IntFuncPtr)(int, int);
typedef float (*FloatFuncPtr)(float, float);
```
然后,可以定义一个函数,该函数接受一个函数指针作为参数,并根据传入的函数指针调用不同的重载函数,如下:
```cpp
void callFunc(IntFuncPtr funcPtr) {
int result = funcPtr(1, 2);
std::cout << "result: " << result << std::endl;
}
void callFunc(FloatFuncPtr funcPtr) {
float result = funcPtr(1.0f, 2.0f);
std::cout << "result: " << result << std::endl;
}
```
调用函数时,可以根据需要传入对应的函数指针,如下:
```cpp
int main() {
IntFuncPtr intFuncPtr = add;
FloatFuncPtr floatFuncPtr = add;
callFunc(intFuncPtr);
callFunc(floatFuncPtr);
return 0;
}
```
输出结果为:
```
result: 3
result: 3
```
阅读全文