仿函数--创建结构体或类的内部函数指针

仿函数--创建结构体或类的内部函数指针
#include<iostream>
#include<iostream>
#include<functional>

using namespace std;
using namespace std::placeholders;

//仿函数 创建一个结构体或类的内部函数的函数指针
struct MyStruct
{
        void add( int a){
              cout << a << endl;
        }

        void add2( int a, int b){
              cout << a << " ";
              cout << b << endl;
        }

        void add3( int a, int b, int c){
              cout << a << " ";
              cout << b << " ";
              cout << c << endl;
        }

};

void main(){
        MyStruct ms;
        //func是一个函数指针
        //_1表示add方法只有一个参数,它只表示一个占位
        //&MyStruct::add 是取出add在代码区的地址
        //取出add方法后,必须把它放到一个ms实体上执行
        //auto 自动变量
        //第一个参数引用一个内部函数,第二个绑定一个实体对象,第三个表示占位
        auto func = bind(& MyStruct::add, &ms, _1);
        auto func2 = bind(& MyStruct::add2, &ms, _1, _2);
        auto func3 = bind(& MyStruct::add3, &ms, _1, _2, _3);
        func(100);
        func2(22, 98);
        func3(25, 38, 222);
        cin.get();
}





原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531465.html