转自:https://www.cnblogs.com/kevonyang/p/6259922.html
测试:
enum CreateType
{
FCT_1,
FCT_2,
FCT_3
};
DECLARE_WIDGET(FCT_1, Widget);
DECLARE_WIDGET(FCT_2, WidgetA);
DECLARE_WIDGET(FCT_3, WidgetB);
int main(int argc, char *argv[])
{
CFactoryMgr::getInstance().createWidget(FCT_1);
CFactoryMgr::getInstance().createWidget(FCT_2);
CFactoryMgr::getInstance().createWidget(FCT_3);
return 0;
}