2012-09-30 64 views
0

在C中,可以通過dlopen()動態鏈接共享對象,並使用dlsym()來定位特定符號(函數)的地址並將其分配給函數指針。從共享對象中的位置創建類對象

在C++中,如果您碰巧知道類構造函數的地址,您是否可以創建一個新的對象 ?我意識到,使用靜態方法可以返回類的對象,這是在C++中動態鏈接的約定。

我很好奇是否可以從構造函數地址創建一個對象。如果是這樣,你能舉個例子嗎?

在此先感謝

回答

1

你不能。問題是你不能直接調用構造函數;所有構造函數調用都由編譯器隱式生成。這也意味着你不能通過函數指針來調用它。

我也只是試圖把一個構造函數的地址,也沒有工作(雖然這只是一個快速入侵,不能確定它實際上是有效的) - 作爲構造函數沒有返回類型,下一個問題將是如何編寫該函數指針的類型。