0
這個問題只是在標題中,如果我有一個函數我想通過g_timeout_add()
使用,但是這個函數是一個類成員函數,有沒有什麼辦法可以和g_timeout_add()
一起使用?可以給g_time_out添加一個類的成員函數嗎?
這個問題只是在標題中,如果我有一個函數我想通過g_timeout_add()
使用,但是這個函數是一個類成員函數,有沒有什麼辦法可以和g_timeout_add()
一起使用?可以給g_time_out添加一個類的成員函數嗎?
你需要使用一個蹦牀功能,例如:
extern "C" gboolean trampoline(gpointer data) {
static_cast<MyClass*>(data)->mem_fun();
}
// ...
MyClass c = /* ... */;
g_timeout_add(/*...*/, static_cast<gpointer>(&c));
見this question上,如果你想寫可以移植的代碼,爲什麼你應該使用免費的功能。