zoukankan      html  css  js  c++  java
  • 仿函数和函数指针

      今天没有事,复习了下仿函数和函数指针。

       仿函数:仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。   

      函数指针:函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。函数指针原型void(*fp)().

    下面是实例代码:

    #include <iostream>
    #include <string>
    using namespace std;
    
    typedef void(*FP)(int event);
    
    void func(int test)
    {
        cout << test << endl;
    }
    
    class CFunctor
    {
    private:
        string m_str;
    public:
        CFunctor(string str) :m_str(str){}
        void operator()(const string& str)const  //重载()
        {
            cout << str << m_str << endl;
        }
    };
    
    int main(int argc, char** argv)
    {
        FP fp = func;
    
        (*func)(10);//函数指针调用
        func(100);
        fp(20);
    
        CFunctor cf("world");
        cf("hello  ");//调用()
    
        return 0;
    } 

    输出结果如下:

  • 相关阅读:
    04_Windows平台Spark开发环境构建
    Hadoop Streaming 使用及参数设置
    Kafka 及 PyKafka 的使用
    Database Subquery
    Miscellaneous
    Emacs
    算法归纳
    逆元求组合数
    Elasticsearch 原理
    Linux的内存分页管理【转】
  • 原文地址:https://www.cnblogs.com/huiz/p/8082245.html
Copyright © 2011-2022 走看看