這是代碼,它非常簡單。C++ std :: bind保持對象存活
class Foo
{
public:
void print()
{
std::cout<<"Foo::print\n";
}
};
Game::Game()
{
{
Foo foo;
player.onclick = bind(&Foo::print,foo);
}
player.onclick();
}
內部範圍完成後的Foo對象超出範圍,但打印方法仍稱,我想這是因爲玩家擁有的Foo對象的引用?有沒有辦法阻止這種情況發生?我不希望物體活着,並在它們應該被銷燬時接收事件。
謝謝。
該代碼不是直截了當的。其餘的在哪裏? – 2012-04-04 19:55:24
你還需要什麼?綁定是std :: tr1 :: bind。 onclick是一個這樣的簡單功能 std :: function onclick; 也刪除了不必要的玩家的東西。 –
2012-04-04 19:58:16
所以你使用tr1 :: bind。在這種情況下,我需要包括,主要等 – 2012-04-04 20:24:08