class view
{
public:
void setOnlineStatusCallback(std::function<void()> callback)
{
onlineStatusCall = callback;
}
void usecallback()
{
onlineStatusCall();
}
private:
std::function<void() > onlineStatusCall;
};
//----
int nVarA = 0;
int nVarB = 1;
view obj;
obj.setOnlineStatusCallback([&nVarA, &nVarB]() {
nVarA = 1;
nVarB = 0;
std::cout << "nVarA: " << nVarA << " nVarB: " << nVarB << "\n";
});
obj.usecallback();
分析:
可以看到回调函数修改了nVarA,nVarB的值。