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

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

Patricia Arquette
Patricia Arquette原創
2024-12-20 01:33:101017瀏覽

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

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

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

不幸的是沒有自動化機制

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

類型映射

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

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

型別註冊

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

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

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

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

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