[C++]class内的方法指针

来源:互联网 发布:2016淘宝生意不好 编辑:程序博客网 时间:2024/06/11 00:46
#include<iostream>using namespace std;template<class K, void(K::*method)()>void void_fun(K *obj){ (obj->*method)();}class T0{public:    T0(int id):m_id(id){}    void f0(){cout <<"T0::f0,id="<<m_id<<endl; }    void f1(){cout <<"T0::f1,id="<<m_id<<endl; }private:    int m_id;};class T1{public:    T1(int id):m_id(id){}    void f0(){cout <<"T1::f0,id="<<m_id<<endl; }    void f1(){cout <<"T1::f1,id="<<m_id<<endl; }private:    int m_id;};int main(){    T0 t1(1);    T0 t2(2);    T1 t3(3);    T1 t4(4);    void_fun<T0,&T0::f0>(&t1);    void_fun<T0,&T0::f1>(&t1);    void_fun<T0,&T0::f0>(&t2);    void_fun<T0,&T0::f1>(&t2);    void_fun<T1,&T1::f0>(&t3);    void_fun<T1,&T1::f1>(&t3);    void_fun<T1,&T1::f0>(&t4);    void_fun<T1,&T1::f1>(&t4);    return 0;}

0 0
原创粉丝点击