#include <iostream>
using namespace std;
class Tv
{
public:
static void onBtnClicked(bool b)
{
if(b==true)
cout<<"on"<<endl;
else
cout<<"off"<<endl;
}
Tv(int a,int b):a(a),b(b){}
const int getA(void){return a;}
private:
int a;
int b;
};
class lamp
{
public:
static void onBtnClicked(bool b)
{
if(b==true)
cout<<"on"<<endl;
else
cout<<"off"<<endl;
}
lamp(int a,int b):a(a),b(b){}
const int getA(void){return a;}
private:
int a;
int b;
};
template <typename Tobject, typename Tpara>
class Button
{
typedef void (Tobject::*pFuction)(Tpara);
public:
Button(Tobject* obj, pFuction pf)
{
m_obj=obj;
m_pf=pf;
}
void click(Tpara b)
{
(m_obj->*m_pf)(b);
}
private:
Tobject* m_obj;
pFuction m_pf;
};
int main()
{
Tv a(20,40);
Button<Tv,bool> btn(&a, &Tv::onBtnClicked);//无法初始化类
btn.click(true);
return 0;
}
类模板初始化错误,能指正下吗?