动态创建这个想法也算想了很久了,概念中知道用宏可以做这件事情,但是一直
没有真正去做,今天趁着兴致,干脆做一把。。。
最后的成果大概可以做到下面这样:
class TT
{public:
TT(){a=1;}
int a;};
class P:public TT
{public:
P(){a=2;}
};
RegisterClass(TT,12)
RegisterClass(P,13)
void main()
{
TT* t = (TT*) ZFactory::GetInstance()->CreateClass(12);
TT* p = (TT*) ZFactory::GetInstance()->CreateClass(13);
cout< a< < p>
cout< a< < p>
}
输出 1 2
应该算是正确的。
唯一要做的就是写两个宏。。。。还是蛮方便的
这里只能根据int类型做动态生成. 我企图把它做成template形式的,
但是碰到了一些挫折,似乎无法做的那么漂亮,需要在宏指令中添加新的参数,
比如指定参数类型 int, double之类的