嘿,我试图做一个Button模板类,它是用构造的,按钮会在按下时收到(例如鼠标位置)和一个指向应该调用的函数。如何在类/函数模板中传递void参数
但是按钮通常会返回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; };
};
你怎么想使用你的模板?你是什么意思的按钮往往返回无效,并没有参议员?你指的是哪些按钮? – Jaime
@Jaime:你按下按钮,发生什么事情:他们不接受任何参数,他们被按下,然后只是做一些事情。 – Griffin
按钮是生成事件(即点击)的图形元素,您'挂钩'功能以响应这些事件,以及按钮'如何'做它的事情。ui框架定义您应该实现以响应这些事件的签名(参数的类型和返回类型)所以你想如何使用你的模板?它的目的是什么,也许我们可以提出一些关于如何去做的建议。 – Jaime