C++随笔(三)函数指针
程序员文章站
2022-05-30 10:22:38
...
函数指针的作用
允许在不同的时间传递不同的函数地址,这意味着可以在不同的时间使用不同的函数
1.获取函数地址
只使用函数名(后面不跟参数)
例子对于函数 think();
- think: 函数地址
- think():函数返回值
2.声明函数指针
基本函数声明: double pam(int);
函数指针声明:double (*pf)(int);
3.使用指针来调用函数
double pam(int);
double (*pf)(int);
pf = pam;
double x = pam(4);
double y = (*pf)(5)
//同样也可以像调用不同函数的方式调用函数指针
double y = pf(5);
4.实例
#include<iostream>
double betsy(int);
double pam(int);
void estimate(int lines, double (*pf)(int));
int main(int argc, char const *argv[])
{
using namespace std;
int code;
cout << "How many lines of code do you need? ";
cin >> code;
cout << " Here is Betsy's estimaye:\n";
estimate(code, betsy);
cout << " Here is pam's estimaye:\n";
estimate(code, pam);
return 0;
}
double betsy(int lns)
{
return 0.05 * lns;
}
double pam(int lns)
{
return 0.03 * lns + 0.0005 * lns * lns;
}
void estimate(int lines, double (*pf)(int))
{
using namespace std;
cout << lines << " linrs will take ";
cout << (*pf)(lines) << " hour(s)\n";
}
输出
How many lines of code do you need? 50
Here is Betsy's estimaye:
50 linrs will take 2.5 hour(s)
Here is pam's estimaye:
50 linrs will take 2.75 hour(s)