一千萬個為什麽

搜索

在運行時更改類類型

我有兩個類(讓我們稱之為 AB ),它們都繼承自一個公共超類( C )。

假設我需要構建 CList 。我的問題是,根據 C 的構造函數收到的數據,我需要在列表中放置一個 AB 對象。

有沒有辦法從 C 的構造函數中執行此操作?或者,或者,我該如何解決這個問題?

最佳答案

這聽起來像是一個使用工廠模式的好地方。基本上,使用返回類型為C的靜態方法創建一個類CFactory。然後,該方法可以決定創建A或B並返回它。

轉載註明原文: 在運行時更改類類型