问题只是在标题中,如果我有一个我想通过g_timeout_add()
使用的函数,但是这个函数是一个类成员函数,有什么方法我可以用它{{1} }?
答案 0 :(得分:2)
您需要使用蹦床功能,例如:
extern "C" gboolean trampoline(gpointer data) {
static_cast<MyClass*>(data)->mem_fun();
}
// ...
MyClass c = /* ... */;
g_timeout_add(/*...*/, static_cast<gpointer>(&c));
如果要编写可移植代码,请参阅this question有关使用自由函数的原因。