zoukankan      html  css  js  c++  java
  • c++基础--如何将函数作为参数传递

    转:http://www.cnblogs.com/youxin/archive/2012/04/16/2452620.html

    把函数作为参数传递,常用的方法之一是用typedef定义一个函数指针。

    复制代码
    #include<iostream>
    using namespace std;
    
    typedef int (*pf)(int,int);  //此种方式最容易理解,定义了一个函数指针类型;函数名就是指针。
    
    int f(pf p,int a,int b)
    
    {
        return p(a,b);
    }
    int add(int a,int b)
    {
        return a+b;
    }
    
    int main(){
        cout<<f(add,1,2)<<endl;//3
    }
    复制代码

    还可以这样:

    复制代码
    #include<iostream>
    using namespace std;
    
    typedef int FuncType(int,int); //定义了FuncType这种函数数据类型
    
    int f(FuncType p,int a,int b)   //新建了FuncType p变量  这里将p前面加*,照常运行。???
    
    {
    return p(a,b);
    }
    int add(int a,int b)
    {
    return a+b;
    }
    
    int main(){
    cout<<f(add,1,2)<<endl;//3
    }
    复制代码

    还可以这样:

    复制代码
    #include<iostream>
    using namespace std;
    
    int f(int add(int,int),int a,int b) //与第二种方式,不同,直接使用实例
    
    {
        return add(a,b);
    }
    int add(int a,int b)
    {
        return a+b;
    }
    
    int main(){
        cout<<f(add,1,2)<<endl;//3
    }
    复制代码
  • 相关阅读:
    单例模式
    建造者模式
    工厂方法模式
    原型模式
    适配器模式
    桥接模式
    装饰模式
    组合模式
    多线程的学习与GDI的学习
    我们复习.Net的这些日子里
  • 原文地址:https://www.cnblogs.com/cane/p/3949294.html
Copyright © 2011-2022 走看看