我有一个按钮类。我希望按钮类的构造函数能够接受按下按钮时调用的函数。如果按钮类只从一个类中获取函数,那么这很容易实现。但是,按钮的构造函数接受函数的目的是,无论在哪个类中创建按钮,它都将能够存储指向所在类中函数的指针。
举例说明:
举例说明:
struct Button {
Button(void (*functionPtr)()) {
// Store the function pointer to be called later
}
};
struct SomeClass {
void LoadFile();
SomeClass() {
Button* temp1 = new Button(&LoadFile); // ???
}
};
struct AnotherClass {
void SaveFile();
SomeClass() {
Button* temp2 = new Button(&SaveFile); // ???
}
};
我该如何使这个工作起来?
std::function<void()>
成员,然后传递 lambda 表达式来为您进行类捕获? - Baum mit Augenthis
指针,无论是将其隐藏在绑定包装器中还是在函数指针中提供(目前甚至不是成员函数指针)。我建议首先解决这个问题。 - WhozCraigboost::signals
,不过正如 @BaummitAugen 所指出的那样,现在使用std::function
+ lambda 表达式也是很好的选择。 - Ami Tavory