我還不是很熟悉這些,但也許有人可以照亮這個例子。使用函數指針?
想象一下,我有CFoo類,它將有一個函數來添加一個處理函數和一個函數指針函數。
因此,像這樣:
class CFoo {
int *pointedFunc(int a, int b) = 0;
void setFunc(int *func(int a, int b))
{
pointedFunc = func;
}
};
鑑於上述背景下,我想知道這樣做的正確方法。我認爲我沒有做好。另外,我將如何去調用pointedFunc?
感謝
不是作爲函數指針的「a *函數*」,而是作爲函數指針的「a *成員變量*(在OO中稱爲a *字段*)」。 – 2010-10-01 00:39:45
請避免使用C++代碼中的函數指針。定義一個接口並創建實現該接口的類型。然後您可以整齊地存儲對象,而不必訴諸函數指針的C hocks-pockus。 – 2010-10-01 01:04:00
@Martin:有時一個接口是正確的方法,有時候模板化(和鴨子類型)仿函數,有時函數指針是最好的。特別是對於動態鏈接,需要函數指針。 – 2010-10-01 05:20:41