我有一個宏:獲取一類的名稱作爲字符串
#define DECLARE_STATE_CLASS(T) \
static void create(TGE::StateListener* Parent, const std::string name) \
{ \
T* myState = new T(); \
myState->parent = Parent; \
Parent->manageState(name, myState); \
}
我在從基類派生國家所有類的地方。我用的是狀態的字符串名字,因爲所有的狀態都存儲在一個矢量,所以我必須通過矢量投票和你要求的名稱返回狀態的功能。我想刪除用戶給每個州頒發自己名稱的必要性。相反,我希望名稱是該類的名稱。我怎樣才能做到像
#define DECLARE_STATE_CLASS(T) \
static void create(TGE::StateListener* Parent) \
{ \
T* myState = new T(); \
myState->parent = Parent; \
Parent->manageState(T.toString(), myState); \
}
而不是我目前在做什麼?我想最好的辦法是讓myState的類型名稱並以某種方式將其轉換成字符串。這可能嗎?