//
void fun(..., ctx__)
{
A* p = (A*)ctx__;
.......
}
//
class B
{
setcallback(callback cb_, callbackctx ctx_);
start();
callback cb;
callbackctx ctx;
}
B::setcallback(callback cb_, callbackctx ctx_)
{
cb = cb_;
ctx = ctx_;
}
B::start()
{
cb(..., ctx);
}
//
class A
{
start();
B b;
}
A::start()
{
b.setcallback(fun, this);
b.start();
}
主程序中调用:
A a;
a.start();
void fun(..., ctx__)
{
A* p = (A*)ctx__;
.......
}
//
class B
{
setcallback(callback cb_, callbackctx ctx_);
start();
callback cb;
callbackctx ctx;
}
B::setcallback(callback cb_, callbackctx ctx_)
{
cb = cb_;
ctx = ctx_;
}
B::start()
{
cb(..., ctx);
}
//
class A
{
start();
B b;
}
A::start()
{
b.setcallback(fun, this);
b.start();
}
主程序中调用:
A a;
a.start();