我使用一些代码(来自How to make static callback c++)来从类这样的类访问main中的函数:
aggregate
但是我想用不同的函数创建同一个类的多个实例,但是因为它在这里声明了" std :: function Foo :: onCallBackResult;"它始终共享相同的功能,无论在何处或如何在类的一个实例中更改它。我的疑问是如何更改它以允许我不共享相同的功能。谢谢!
答案 0 :(得分:-1)
我认为你正在使用一种错误的方法来调用onCallBackResult函数。你能试试这段代码吗?
#pragma once #include <functional>
#include <iostream> class Foo {
public: std::function<void()> onCallBackResult;
void start(std::function<void()> callback) {
onCallBackResult = callback;
second();
}
void second() {
//Needs to be static here
onCallBackResult();
}
};
//std::function<void()> Foo::onCallBackResult;
void onCallBackResult() {
std::cout << "Result\n";
}
int main() {
Foo foo;
foo.start(std::bind(foo.onCallBackResult));
}