首頁 >後端開發 >C++ >如何在 C 中指定指向重載函數的指標?

如何在 C 中指定指向重載函數的指標?

Barbara Streisand
Barbara Streisand原創
2024-12-30 05:03:08938瀏覽

How Can I Specify a Pointer to an Overloaded Function in C  ?

指定重載函數的指標

在 C 領域,遇到同名但不同名稱的重載函數並不罕見。它們的輸入參數不同。當嘗試將此類函數作為參數傳遞給 std::for_each() 等通用演算法時,這提出了挑戰。

類別中的巢狀重載函數

考慮以下內容例如,類別中發生重載:

這裡,使用字元字串呼叫scan() 方法讓編譯器不確定要使用f 的哪個實作。預設情況下,f() 將接受一個字元作為參數。但是,使用者可能打算使用接受整數的重載。

明確指標賦值

為了解決這個歧義,可以明確指定所需的重載使用static_cast():

透過將函數指標轉換為適當的類型,您可以明確地向編譯器指示應呼叫哪個重載。

使用函數指標的替代方法

另一種方法是明確宣告函數指標:

透過建立具有特定簽章的函數指針,編譯器可以自動決定正確的重載use.

成員函式處理

如果重載函式是成員函數,則需要採用不同的方法。考慮使用 mem_fun 範本或參考其他資源,例如提供的答案中連結的 Dobb 博士的文章。

以上是如何在 C 中指定指向重載函數的指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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