面试题答案
一键面试#include <iostream>
// 定义函数指针指向的函数类型
using FuncType = int(*)(int, int);
// 示例函数1
int add(int a, int b) {
return a + b;
}
// 示例函数2
int subtract(int a, int b) {
return a - b;
}
// 主函数,接受函数指针数组并计算结果总和
int sumResults(FuncType funcArray[], int size, int a, int b) {
int total = 0;
for (int i = 0; i < size; ++i) {
total += funcArray[i](a, b);
}
return total;
}
int main() {
// 定义并初始化函数指针数组
FuncType funcArray[] = {add, subtract};
int size = sizeof(funcArray) / sizeof(funcArray[0]);
int result = sumResults(funcArray, size, 5, 3);
std::cout << "所有函数调用结果的总和为: " << result << std::endl;
return 0;
}
解释:
- 首先定义了一个
FuncType
,它是一个函数指针类型,指向接受两个int
参数并返回一个int
的函数。 - 接着定义了两个示例函数
add
和subtract
,用于演示函数指针数组中的函数。 sumResults
函数接受一个函数指针数组、数组大小以及两个整数参数,遍历数组并调用每个函数,返回所有结果的总和。- 在
main
函数中,定义并初始化了函数指针数组funcArray
,然后调用sumResults
函数并输出结果。