在Java中,我可以使用'Class'方法'newInstance'實例化一個對象,對於我的特定系統我確實非常有用。我現在試圖在C++中實現類似的東西。使用sizeof,malloc和cast的C++對象實例化
它對我而言並不明顯,但是經過一些反思後......(你懂了嗎......呵呵)我認爲創建一個ClassDescription類可能是有可能的,屬性持有'sizeof'類實例和一個方法newInstance malloc這個內存量並將其作爲void *返回。調用代碼將需要適當地施放此代碼。
C++語言是否適當地定義了這是否有效?
順便說一句..我認識到我可以創建一個註冊表,保存班級的工廠,這是一個備份計劃。對於這個問題的答案,我會重視關於我所討論的內容是否可行的具體問題。
問候
*附加的上下文* 這樣做的理由要求是,讓一個通用庫實例化哪一個圖書館用戶知道的類,但不是庫本身。圖書館將有一些元數據用於實現這一點,因此可以告訴課程大小。從用戶的角度來看,它是'整潔'的,不必將工廠對象添加到元數據中。
爲什麼不給你的類一個私有的構造函數並從靜態方法調用'new Class'?不要使用malloc,它不會爲你調用類的構造函數。 – Benj
你問爲什麼'malloc'不用於在C++中分配對象實例? –
如果你想走下去這條路線,那麼你應該看看[放置新](http://stackoverflow.com/questions/222557/cs-placement-new) – tinman