这里是具体用法,factory代码需要调整一下,以后给出。比较遗憾的地方是宏不能重载
就是说注册有参数和没有参数用的宏是不一样的,不知道能不能改进, 动态create的时候
第一个是识别吗,然后是参数,对于如果输入错误将返回null!
class TT
{
public:
TT(){a=4;}
int a;
};
RegisterClass(12,TT)
class P:public TT
{
public:
P(){a=2;}
P(int b){a=b;}
P(int b,TT* c){a=b*c->a;}
};
RegisterClass(13,P)
RegisterClassArg1(13,P,int)
RegisterClassArg2(13,P,int,TT*)
void main()
{
TT* t = (TT*) ZFactory::GetInstance()->CreateClass(12);
TT* p = (TT*) ZFactory::GetInstance()->CreateClass(13);
cout< a< < p>
cout< a< < p>
p = (TT*) ZFactory::GetInstance()->CreateClass(13,22);
cout< a< < p>
p = (TT*) ZFactory::GetInstance()->CreateClass(13,22,t);
cout< a< < p>
}