根据类名创建类C++中怎么实现像java中的反射机制的东西,创建一个类比如SomeClass A Class.forName(Clas
根据类名创建类
C++中怎么实现像java中的反射机制的东西,创建一个类
比如
SomeClass A = Class.forName("ClassName");
以前我只看到过用一个插件先把源代码解释一遍,把这种语句转化成 SomeClass A这样的语句!
不知道有没有更加优雅的方法!
[解决办法]
代码同这个类似,不过比较有挑战,楼主自己看看。
- C/C++ code
#include "stdafx.h"#include <iostream>#include <string>#include <boost/mpl/vector.hpp>using namespace std;struct NullType{};template <class TList, template<class> class Unit>class GenScatterHierarchy;template<class T1, class T2, template<class> class Unit>class GenScatterHierarchy<boost::mpl::vector<T1,T2>, Unit> : public GenScatterHierarchy<T1,Unit> , public GenScatterHierarchy<T2,Unit>{};template<class ATomicType, template<class> class Unit>class GenScatterHierarchy : public Unit<ATomicType>{};template<template<class> class Unit>class GenScatterHierarchy<NullType, Unit>{};template <class T>struct Holder{ T vaule;};int _tmain(int argc, _TCHAR* argv[]){ typedef GenScatterHierarchy<boost::mpl::vector<int, string>, Holder> Info; return 0;} 