我正在C++中實現反射機制。 我的代碼中的所有對象都是Object(我自己的泛型類型)的一個子類,它包含一個類型爲Class的靜態成員數據。如何傳遞指向構造函數的函數指針?
class Class{
public:
Class(const std::string &n, Object *(*c)());
protected:
std::string name; // Name for subclass
Object *(*create)(); // Pointer to creation function for subclass
};
對於對象與類的靜態成員數據任何子類,我希望能夠初始化「創造」的指針該子類的構造函數。
雖然這是事實,經過6年的 - 你應該給很多人想到你是否真的想實現自己的反射機制。首先考慮使用模板,type_traits和SFINAE原則來解決編譯時「反射」問題;然後嘗試一個現有的C++反射庫;只有到那時我纔會考慮親自去做。 – einpoklum 2015-12-15 21:41:19