首頁 > 後端開發 > C++ > 如何從包含類別名稱的字串建立 C 物件?

如何從包含類別名稱的字串建立 C 物件?

Patricia Arquette
發布: 2024-12-20 01:33:10
原創
1016 人瀏覽過

How to Create C   Objects from a String Containing Their Class Name?

如何從包含類別名稱的字串實例化物件?

在給定的程式碼中,BaseFactory 類別建立不同衍生類別的物件是基於代表其類別名稱的字串。但是,工廠需要為每個可能的衍生類別手動新增 if 語句。人們可能想知道是否有一種替代這種冗長方法的方法,類似於 C# 的反射功能。

不幸的是沒有自動化機制

不幸的是,C 沒有機制用於自動建立運行時指定類型的物件。但是,您可以自己進行映射:

類型映射

您可以建立一個映射,為每個類別名稱儲存一個建立物件的函數該類別的:

然後你也可以實例化物件help:

型別註冊

另一個解法是允許型別自行註冊:

您也可以定義巨集對於型別註冊:

對於不共用公用基底的型別,您可以使用變體boost::variant作為函數的回傳類型:

以上是如何從包含類別名稱的字串建立 C 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板