函数对象

函数对象

 定义:

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

 特点:

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

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

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

 实现:

    函数访问操作符 ()

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

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

 

#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对象代替

 数组:数组对象代替

函数:函数对象代替

 

posted @ 2019-05-09 11:07  张不源  Views(107)  Comments(0Edit  收藏  举报