C 中的動態轉換:相當於 Java 的 instanceof
Java 中的 Instanceof 允許開發人員確定物件是否屬於特定類別。在 C 中,有多種技術可以實現類似的功能。
方法:
Dynamic_cast 是一種運行時類型辨識機制,是一種常見的方法。它提供對物件實際(動態)類型的存取:
<code class="cpp">if (NewType* v = dynamic_cast<NewType*>(old)) { // old was safely casted to NewType v->doSomething(); }</code>
注意事項:
替代方法:
型別檢查枚舉:為類別新增一個列舉,表示可能的型別。檢查枚舉以驗證物件的類型。但是,這種方法可能不支援多層繼承。
注意:應謹慎使用動態轉換,因為它可能表示設計缺陷。考慮虛擬函數或訪客模式等替代方案,以避免過度使用。以上是如何用C實作Java的「instanceof」功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!