函数指针
#include <iostream>
#include "Cal.h"
using namespace std;
int main()
{ double (*prtCC)(double, double);
double num1, num2;
char op;
cout << "please input 2 num: ";
cin >> num1 >> num2;
cout << "input opration:";
cin >> op;
switch (op)
{
case '+':
prtCC = adde;
break;
case '-':
prtCC = minuss;
break;
case '*':
prtCC = multi;
break;
case '/':
prtCC = divide;
break;
default:
cout << "quit " << endl;
break;
}
print_result(prtCC, num1, num2);
return 0;
}
Cal.h 头文件
#ifndef P79_CAL_H
#define P79_CAL_H
#include <iostream>
using namespace std;
//add
double add(double, double);
//minus
double minus(double, double);
//mult
double multi(double, double);
//divide
double divide(double, double);
//print result
void print_result(double (*)(double, double), double, double);
void print_result(double (*prtcal)(double, double), double num1, double num2) //函数指针
{
double result = prtcal(num1, num2);
cout << "result is: " << result << endl;
}
double adde(double num1, double num2)
{
return num1 + num2;
}
double minuss(double num1, double num2)
{
return num1 - num2;
}
double multi(double num1, double num2)
{
return num1 * num2;
}
double divide(double num1, double num2)
{
if (num2 == 0)
{
cout << "error, num2 is 0" << endl;
return 0;
}
return num1 / num2;
}
#endif //P79_CAL_H
本文介绍了一个使用函数指针进行算术运算的C++程序实例。通过定义函数指针并将其指向不同的算术操作,如加、减、乘、除,程序能够根据用户输入的操作符灵活地调用相应的函数来执行计算。此例展示了函数指针在提高代码灵活性和可扩展性方面的作用。
1159

被折叠的 条评论
为什么被折叠?



