微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c++STL之函数对象仿函数

概念:

本质:函数对象是一个类,不是一个函数

函数对象使用:

- 函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值
- 函数对象超出普通函数的概念,函数对象可以有自己的状态
- 函数对象可以作为参数传递

#include<iostream>
using namespace std;
#include <string>


class MyAdd
{
public:
    int operator()(int v1,int v2)
    {
        return v1 + v2;
    }

};

// 1、函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值
void test01()
{
    MyAdd myAdd;
    cout <<  myAdd(10,10) <<endl;
}


2、函数对象超出普通函数的概念,函数对象可以有自己的状态
 MyPrint
{
:
    MyPrint()
    {
        this->count = 0;
    }
    void string test) const
    {
        cout << test << endl;
        this->count++;
    }

    int count;  内部自己状态
};

 test02()
{
    MyPrint myPrint;
    myPrint("hello world");
    myPrint();

    cout << myPrint调用次数为: " << myPrint.count << endl;
}

3、函数对象可以作为参数传递
void doPrint(MyPrint & mp,1)"> test)
{
    mp(test);
}

 test03()
{
    MyPrint myPrint;
    doPrint(myPrint,Hello c++);
}

 main() {

    test01();

    test02();

    test03();

    system(pause);

    return ;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐