我正在用C ++练习反思,代码如下:
typedef void* (*PTRCreateObject)(void);
class ClassFactory{
private:
map<string, PTRCreateObject>m_classMap;
ClassFactory(){};
public:
void* getClassByName(string className);
void registClass(string name, PTRCreateObject method);
static ClassFactory& getInstance();
};
答案 0 :(得分:4)
这是C的遗留物。
void* (*)(void)
是一个指向无参数的函数的指针。
void* (*)()
是一个指向未指定参数的函数的指针。
两者都意味着没有参数。
()
是惯用的,(void)
允许向后兼容。
答案 1 :(得分:2)
这只是表示无参数的另一种方式。
typedef void* (*PTRCreateObject)(void);
和
typedef void* (*PTRCreateObject)();
都是等价的。
返回签名void*
只是返回指向某种未知类型的指针。