简单反射框架构建 C++实现

java自带反射功能,即可以通过类名(字符串)动态生成对应的类实例,c/c++系统并不提供这样的反射功能。

第一步,简洁地说一下反射的实现思路:

  1. 构建一个空基类,所有需要实现反射的应用类必须 public 继承该类;
  2. 构建一个专门用于产生应用类实例的工具类 CreateObjectFactory,此类具体功能包括:提供工厂设计模式的唯一单例,并且实现应用类实例化方法的注册,同时支持据名返回 Object 对象指针;
  3. 构建一个自动注册的工具类 AutoRegister ,此类主要提供函数自动注册;
  4. 提供反射所需的宏定义头文件;
  5. 定义应用类,并把宏定义放置到应用类指定的位置。

第二步,本实现的基本结构

第三步,具体实现细节

//Object.h

#pragma once
class Object
{

};
// CreateObjectFactory.h

#pragma once
#include "Object.h"
#include <map>
#include <string>

typ

猜你喜欢

转载自blog.csdn.net/A_Pointer/article/details/108279900