根据字符串类名动态创建对象
老板很无理的要求,硬是让程序能够根据给定的字符串类名来创建相应的对象,哎,为此折腾了几天!
////////////////////////reflect.h文件
#ifndef REFLECT_H
#define REFLECT_H
class ClassDef;
class __ClassDefiner;
typedef void (*ConstructObjectFn)(void *pObject);
typedef void (*DestructObjectFn)(void *pObject);
//自己重载new运算符
inline void * __cdecl operator new(unsigned int size,void* ptr,int le,char ch)
{
return ptr;
};
#define DEFINE_HANDLE_TYPE(name) /
typedef struct TT{int __nothing;} name##_t, *name;
//类的构造函数和析构函数
#define DO_DEFAULT_FUNCTIONS(_ClassName) /
void Default##_ClassName##Constructor(void *ptr)/
{/
new(ptr,(int)0,(char)0) _ClassName;/
};/
void Default##_ClassName##Destructor(void *ptr)/
{/
_ClassName *thePtr = (_ClassName*)ptr;/
thePtr->~_ClassName();/
};/
#define DO_AUTO_CLASSLIST(name)

本文介绍如何应对特殊需求,即通过输入的字符串类名来动态创建相应对象,这一技巧在某些场景下可能非常实用。
最低0.47元/天 解锁文章
586

被折叠的 条评论
为什么被折叠?



