zoukankan      html  css  js  c++  java
  • C++函数式编程

    将一个函数作为参数交给另一个函数的编程范式叫做函数式编程。

    在C++中,函数也有自己的内存地址,即函数指针。

    但是函数不像变量一样可以进行值传递,我们在将其作为函数进行传递时,需要传递它的地址。

    函数要接收另一函数作为参数,就必须有一个形式参数用于接收函数指针变量作为参数。

    int g(float (*f)(int),int a)
    {
        return (*f)(a);
    }
    

     在这个函数中,第一个参数需要一个返回值类型为float且有一个int类型参数的函数,第二个参数就是普通的int类型的值。

    对这样一个函数g,因为第一个参数传入的是地址,它的第一个参数在被使用时,需要用到取值符*。

    不同于传变量地址时需要用取值的做法,在调用上面这个g函数,并且将函数指针变量作为参数时,直接将函数名传入就可以了。如果我们希望将:

    float sqrt_minus_one(int x)
    {
       return sqrt(x)-1;
    }
    

      作为参数,和变量number一起传给g,调用时则应该写:

    g(sqrt_minus_one,number)
    

      将 sqrt_minus_one函数和变量a传入到了g后,形式参数float(*f)(int)接收了sqit_minus_one函数的地址,形式参数int a 接收了number的值。

  • 相关阅读:
    查找最大回文
    java-线程池
    Java基础 IO流——第一部分
    tomcat优化
    反射
    网络编程——第二部分
    网络编程——第一部分
    Java基础 IO流——第四部分
    Java基础 IO流——第三部分
    Java基础 IO流——第二部分
  • 原文地址:https://www.cnblogs.com/fuhang/p/8655819.html
Copyright © 2011-2022 走看看