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;
    } 

    输出结果如下:

  • 相关阅读:
    Thrust--self-defined(4)
    x86---32汇编(3)---内存寻址模式
    x86---32汇编(2)---局部变量
    x86---32汇编(1)---乘除法
    CUDA--Thrust(3)--List
    CUDA-Thrust(2)--野指针转换
    CUDA-Thrust(1)--函数初始化
    CUDA---Thrust(0)--初始化
    python(13)--Numpy的安装
    20200930 day24 刷题记录
  • 原文地址:https://www.cnblogs.com/huiz/p/8082245.html
Copyright © 2011-2022 走看看