雖然C 支援基於參數類型的函數重載,但它還提供了根據返回值選擇不同函數實現的有趣可能性價值。對於處理相同輸入可以產生不同所需輸出的情況,這可能是一種有價值的技術。
在所呈現的用例中,我們有一個函數mul ,它應該返回一個當分配給整數變數時為整數,當分配給字符字串變數時為字串。然而,C 需要明確微分才能實現這一點:
另一種方法是將虛擬參數加入函數簽章中。透過傳遞所需返回類型的NULL 指針,我們可以強制編譯器選擇適當的函數:
C 模板提供了另一種回傳值方法超載。我們可以建立一個「虛擬」函數,其程式碼除非使用特定模板實例化,否則不會編譯:
如果需要,基於模板的重載也可以支援不同的參數類型來實現不同的返回值特化:
透過利用這些技術,程式設計師可以創建提供不同輸出的函數關於預期返回值類型。
以上是C 函數可以根據回傳類型重載嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!