这是代码,它非常简单。
class Foo
{
public:
void print()
{
std::cout<<"Foo::print\n";
}
};
Game::Game()
{
{
Foo foo;
player.onclick = bind(&Foo::print,foo);
}
player.onclick();
}
内部作用域完成后, foo 对象超出作用域,但 print 方法仍然被调用,我猜这是因为 player 持有对 foo 对象的引用?有没有办法阻止这种情况发生?我不希望对象在应该被销毁时保持活动状态并接收事件。
谢谢。