Original Post
Ok I don't know if this can be done... but if it can how can it be done?
I want to be able to make new classes (using the new operator) using a single function and a table of "references" to classes. Here is what I mean....
Say I have 5 classes derived from CGameUnit, I want to do this:
you see where I'm going (right?)...
Here is the catch -> I don't want to have to write a new (or rewrite) MakeUnit function every time I add a class... So how can I make a table of refrences to classes so I can simply do this...
Any ideas? or if I need to explain better just say so...
ill-lusion.com
ziggy@ill-lusion.com Edited by - Ziggy5000 on January 14, 2001 8:42:47 AM
CGameUnit *MakeUnit(DWORD id)
{
switch (id)
{
case 0:
return new CFlyerUnit;
break;
case 1:
return new CGroundUnit;
break;
// etc...
}
|
// PSEUDOCODE ON
CGameUnit *MakeUnit(DWORD id)
{
Get Reference Entry from table....
(maybe a table of class pointers? don't know...)
return new "ReferencePointer";
}
// PSEUDOCODE OFF
|
ziggy@ill-lusion.com Edited by - Ziggy5000 on January 14, 2001 8:42:47 AM