由类名创建对象
来源:互联网 发布:昆山大数据产业园招聘 编辑:程序博客网 时间:2024/06/11 20:58
#pragma once
#include "shengli_tool/template_map_str.h"
using namespace SHENGLI::TOOLS;
// 用于声明具有动态创建功能的基类
#define DECLARE_DYNCRT_BASE(base) /
public: /
typedef base* (*ClassGen)(); /
static void Register(const char* class_name, ClassGen class_gen) /
{ /
MapStr<base::ClassGen>& class_set = base::get_class_set();/
class_set.Set(class_name, class_gen);/
} /
public:/
static base* Create(const char* class_name) /
{ /
base::ClassGen pfun;/
MapStr<base::ClassGen>& class_set = base::get_class_set();/
if (class_set.Find(class_name, pfun))/
{/
return (pfun)();/
}/
return NULL; /
}/
protected: /
static MapStr<base::ClassGen>& get_class_set()/
{ /
static MapStr<base::ClassGen> class_set; /
return map_set;/
}/
// 用于实现基类
#define IMPLEMENT_DYNCRT_BASE(base)
// 用于声明一个能够被动态创建的类
#define DECLARE_DYNCRT_CLASS(derived, base) /
public: /
struct derived##Register /
{ /
derived##Register() /
{ /
static bool bRegistered = false; /
if(!bRegistered) /
{/
base::Register(#derived, Create); /
bRegistered = true; /
} /
} /
}; /
static base* Create() /
{ /
return new derived; /
}
// 用于实现一个能够被动态创建的类
#define IMPLEMENT_DYNCRT_CLASS(derived) /
static derived::derived##Register derived##_for_registering;
- 由类名创建对象
- 动态2:由类名创建对象
- 由类名创建对象(转)
- 动态2:由类名创建对象
- 根据字符串类名动态创建对象
- 根据字符串类名动态创建对象
- c++类名()创建临时对象
- 根据字符串类名动态创建对象
- Swift通过类名创建对象
- 【Swift】通过类名创建对象
- c++中由类名去创建相应类的对象(RTTI)
- 总结一下由对象名得到对象地址的方法
- 总结一下由对象名得到对象地址的方法
- QT根据类名动态创建类对象
- 如何根据类名和参数创建对象
- 利用类名创建对象来简化程序结构
- 利用类名创建对象来简化程序结构2
- c#通过类名动态创建对象方法
- Android学习笔记(二四): 多页显示-SlidingDrawer的使用
- 函数指针和指针函数
- SQL锁
- 第一次来
- 经典个性签名
- 由类名创建对象
- 关于java的接口回调和向上转型的理解
- innerHTML和outerHTML与innerText和outerText
- 产品、用户
- 大端小端转换
- javascript常用判断写法
- 外贸业务员的辞职报告
- VC2008中AfxGetMainWnd函数的变化
- struts2之整合sitemesh(定义装饰器页面)