將成員函數指標傳遞給外部函數
將成員函數指標作為參數傳遞給外部函數可能很棘手,尤其是在處理類別類型時。這個問題關註一個特定的場景,其中一個類別的成員函數需要傳遞給一個需要成員函數指標的函數。
為了實現這一點,外部函數需要一個指向物件的指標和一個指向成員函數的指標。在給定的程式碼片段中,外部函數 MenuButton::SetButton() 將指向物件的指標作為 ButtonObj,將指向成員函數的指標作為 ButtonFunc。
解決方案包括傳遞物件指標和成員指向 MenuButton::SetButton() 的函式指標。在提供的類別 testMenu 中,建構函式呼叫 x.SetButton(...) 並將 this 作為物件指標傳遞,將 test2 作為成員函數指標傳遞。這確保了當外部函數被呼叫時,它可以存取該物件及其成員函數。
下面是修改後的程式碼:
testMenu::testMenu() :MenuScreen("testMenu") { x.SetButton(100,100,TEXT("buttonNormal.png"), TEXT("buttonHover.png"), TEXT("buttonPressed.png"), 100, 40, this, &testMenu::test2); draw = false; }
在外部函數MenuButton::SetButton 中(),可以使用物件指標和成員函數指標來呼叫成員函數,使用語法(( ButtonObj)->*(ButtonFunc))();.
以上是如何在 C 中將成員函數指標傳遞給外部函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!