.设计一个函数,使用函数指针做形参,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。
时间: 2024-12-04 14:24:09 浏览: 17
设计这样一个函数,可以利用C++中的函数指针作为参数,让你可以在运行时动态指定要执行的操作。首先,我们需要定义三个用于计算的函数模板,然后创建一个接受函数指针作为参数的主函数`executeOperation`。下面是这个设计的示例:
```cpp
// 定义函数模板,分别对应加、减、乘操作
template <typename T>
T add(T a, T b) {
return a + b;
}
template <typename T>
T subtract(T a, T b) {
return a - b;
}
template <typename T>
T multiply(T a, T b) {
return a * b;
}
// 函数指针类型声明
using Operation = void (*)(int, int);
// 主函数,接受函数指针作为参数
void executeOperation(Operation op, int num1, int num2) {
// 动态调用函数指针
int result = op(num1, num2);
std::cout << "Result of the operation is: " << result << std::endl;
}
// 使用函数指针调用相应的运算
int main() {
// 指向各函数的指针
Operation sumOp = &add<int>;
Operation diffOp = &subtract<int>;
Operation prodOp = &multiply<int>;
// 调用函数执行各种操作
executeOperation(sumOp, 5, 3); // 输出8 (5 + 3)
executeOperation(diffOp, 7, 4); // 输出3 (7 - 4)
executeOperation(prodOp, 2, 6); // 输出12 (2 * 6)
return 0;
}
```
在这个例子中,`executeOperation`函数接收一个`Operation`类型的指针,并通过该指针动态调用对应的计算函数。你可以根据需要传入`sumOp`、`diffOp`或`prodOp`来改变操作。
阅读全文