函数对象

函数对象

 定义:

            使用某一类的对象来替代某一函数

 特点:

            该类的对象具备函数调用的行为

    在构造函数指定具体的数列项的起始位置

    多个对象相互独立的求解数列项

 实现:

    函数访问操作符 ()

    只能通过类的成员函数重载

    可以定义不同参数的多个重载函数

#include <iostream>
#include <string>

using namespace std;

class Fib
{
    int a0;
    int a1;
public:
    Fib()
    {
        a0 = 0;
        a1 = 1;
    }
    
    int operator () ()    // 重载()函数访问操作符
    {
        int ret = a1; 
        a1 = a0 + a1;
        a0 = ret;   
        return ret;
    }
};

int main()
{
    Fib fib;
    
    for(int i=0; i<10; i++)
    {
        cout << fib() << endl;    // 将对象fib以函数调用的形式进行使用
    }
    return 0;
}

意义:通过函数对象可以替换函数指针。

字符串:string对象代替

 数组:数组对象代替

函数:函数对象代替

原文地址:https://www.cnblogs.com/zsy12138/p/10837313.html