嘿,我正在尝试创建一个按钮模板类,它是基于按下时按钮将接收的(例如鼠标位置)和应该被调用的函数的指针构建的。
然而,按钮通常返回void且不带参数(当你按下按钮后会发生某些事情:它们不会带任何参数,只是被按下后执行某些操作)因此如何生成这些类的成员函数,因为显然不能将 void 作为参数类型?
如果需要,以下是源代码:
template<typename Return = void, typename Arg1 = void, typename Arg2 = void>
class Button
{
private:
boost::function<Return (Arg1, Arg2)> Function;
//Return (*Function)(Arg1, Arg2); // this didn't work so i tried boost::function
public:
void Activate(Arg1, Arg2){ Function(Arg1, Arg2) ;};
void SetFunction(Return (*Function)(Arg1, Arg2)){
this->Function= Function;};
//constructors
Button(){ Function= 0;};
Button( Return (*Function)(Arg1, Arg2)){
this->Function = &Function; };
};