函数对象的基本使用

#include<iostream>
using namespace std;


//函数对象的基本使用
class MyAdd
{
public:
    MyAdd()
    {
        this->count = 0;
    }

    int operator()(int a, int b)
    {
        count++;
        return a + b;
    }

    int count;
};


void doadd(MyAdd& add, int x, int y)
{
    cout << add(x, y) << endl;
}

int main(void)
{
    //1.函数对象在使用的时候,可以像普通函数那样调用,可以有参数,可以有返回值
    MyAdd myadd;
    cout << myadd(100, 200) << endl; //伪函数

    //2.函数对象超出普通函数的概念,函数对象有自己的状态
    myadd(100, 200);
    myadd(100, 200);
    myadd(100, 200);
    myadd(100, 200);

    cout << "myadd被调用了" << myadd.count <<"" << endl;

    //3.函数对象可以作为参数传递
    doadd(myadd, 20, 10);
    return 0;
}

 

posted @ 2021-01-16 10:26  loliconsk  阅读(107)  评论(0)    收藏  举报