C++函数指针 当作形参时候 如何使用,参数如何传递,举例试用
标签:space 不能 pac turn 进入 style span com 传递
#include
#include string>
using namespace std;
//虽然不能定义函数类型的形参,但是形参可以是指向函数的指针
bool lengthcompare(const string &a,const string &b)
{
return a.size() true: false;
}
//等价定义
//string useBig(const string &s1,const string &s2,bool pf(const string &a,const string &b))//第三个形参是函数类型,自动转换成指向函数的指针
string useBig(const string &s1,const string &s2,bool (*pf)(const string &a,const string &b)) //直接定义成指向函数的指针
{
//函数指针作形参时,进入到函数里面后赋值,取返回值
string a("abcuopppppp");//改变a,b的长度,可见输出s1或者s2.
string b("fsfasdwa");
//函数指针三种等价调用
//bool p = pf(a,b);
//bool p = lengthcompare(a,b);
bool p =(*pf)(a,b);
if(p)
{
return s1;
}
else
{
return s2;
}
}
int main() {
string s1("我是s1");
string s2("我是s2");
string result;
//直接把函数当实参用.函数自动转换成指向函数的指针
result = useBig(s1,s2,lengthcompare);
coutendl;
return 0;
}
C++函数指针 当作形参时候 如何使用,参数如何传递,举例试用
标签:space 不能 pac turn 进入 style span com 传递
原文地址:https://www.cnblogs.com/wbscpp/p/12944091.html
评论