對不起,提出這樣一個問題,因爲我確信它之前已經得到了答案,但我正在努力尋找答案,而不是爲了尋找答案。 ..反正..將一個非靜態方法指針作爲參數傳遞給另一個方法
class foo
{
void read(void (*func)(obj&))
{
// many things happen to obj...
(*func)(obj); // Calls the function pointer to the handler.
}
};
class bar : public foo
{
void handler(obj&)
{
//
}
};
void main()
{
foo f;
typedef void (foo::*funcptr)(obj&);
funcptr ptr = &foo::handler;
f.read(ptr); ????
}
因此,基本上,所有我想要做的就是通過所謂的處理程序作爲一個函數指針讀法,在非靜態成員方法,以便執行回調的情況下,處理程序被調用。
我試過各種各樣的方法來使這項工作,並不想讓靜態方法(因爲我不會進入)。我覺得我非常接近,但最後還是有點失敗!任何幫助,將不勝感激。
查看常見問題簡介,他們有一個偉大的專門討論這個部分:http://www.parashift.com/c++-faq/pointers-to-members.html – Constantin 2013-05-09 01:51:33