码迷,mamicode.com
首页 > 编程语言 > 详细

C++函数指针 当作形参时候 如何使用,参数如何传递,举例试用

时间:2020-05-23 20:14:40      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:space   不能   pac   turn   进入   style   span   com   传递   

#include <iostream>
#include <string>
using namespace std;

//虽然不能定义函数类型的形参,但是形参可以是指向函数的指针
bool lengthcompare(const string &a,const string &b)
{
    return a.size() < b.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);

    cout<<result<<endl;
    return 0;
}

 

C++函数指针 当作形参时候 如何使用,参数如何传递,举例试用

标签:space   不能   pac   turn   进入   style   span   com   传递   

原文地址:https://www.cnblogs.com/wbscpp/p/12944091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!