我必須在庫API中設置一個函數指針,以便在需要執行特定操作時調用該函數。使用指針指向成員函數的困境
int (*send_processor)(char*,int);
int setSendFunctor(int (*process_func)(char*,int))
{
send_processor = process_func;
}
以我主要來源,我有定義爲一個類的成員函數這一功能,
int thisclass::thisfunction(char* buf,int a){//code}
thisfunction取決於其他功能thisclass。所以我不能把它從課堂上分離出來。
我無法設置指向setSendFunctor中成員函數的指針,因爲在API內部,它不會將它分配給成員函數的指針,而是分配給常規函數指針send_processor。
由於該類不是派生類,因此我無法使用虛函數。
處理這個問題的最佳方法是什麼?
感謝您的回覆。對於這個問題,我無法使用Boost或任何其他第三方庫。 – SkypeMeSM 2010-11-20 20:38:06
你可以改變你使用的庫嗎? – Stewart 2010-11-20 20:47:17
無論如何,boost庫僅在這個特定情況下提供有限的幫助。提到它的答案誤解了你的問題。無論如何,那些可能以任何方式提供幫助的部分都是C++ TR1的一部分,您的編譯器可能會支持這一點。這是標準的一部分。 – Omnifarious 2010-11-20 21:44:36