首頁 >後端開發 >C++ >C 類成員函數可以當 C 回呼嗎?

C 類成員函數可以當 C 回呼嗎?

Barbara Streisand
Barbara Streisand原創
2024-12-15 07:36:14553瀏覽

Can C   Class Member Functions Be Used as C Callbacks?

使用C 類成員函數作為C 回呼函數

問題:

問題:

何時嘗試將C 類別成員函數註冊為 C當函式庫的回呼函數時,編譯器會拋出錯誤,表示函數的類型與預期的簽章不符。

  1. 問題:
是否可以將 C 類成員函數註冊為回調函數?

是否有其他方法可以解決這個問題問題?

答案:

1.使用靜態成員函數:

是的,可以將C 類別成員函數註冊為回呼函數,但它必須是

靜態成員函數。靜態成員函數沒有類型 A* 的隱式第一個參數,因此它們的簽章與預期的回呼簽章相符。例如:

2。替代方法:
  • 或者,您可以使用以下方法之一:
建立自由函數:
    使用適當的方法建立自由函數簽章並從其中呼叫C 類別成員函數。例如:
使用函數指標:定義一個函數指針,並將C類成員函數的位址賦給它。例如:

以上是C 類成員函數可以當 C 回呼嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn