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

仿函数--创建结构体或类的内部函数指针<?xml version="1.0" encoding="UTF-8"?>
#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值