111,131
社区成员
发帖
与我相关
我的任务
分享class A { }
class AA : A { }
class AB : A { }
class AC : A { }
class Program
{
static Type[] types = new Type[] { typeof(AA), typeof(AB), typeof(AC) };
static A GetInstance(int input)
{
if (input >= 1 && input <= 3)
return (A)Activator.CreateInstance(types[input - 1]);
return null;
}
static void Main(string[] args)
{
int i = 2;
A a = GetInstance(i);
}
}
class Client
{
private:
A* instance;
public:
Client(int input);
virtual ~Client();
void Use();
};
void Client::Use()
{
instance->xxxx();
}
Client::Client(int input)
{
switch(input)
{
case 1:
instance = new AA();
break;
case 2:
instance = new AB();
break;
case 3:
instance = new AC();
break;
default:
instance = NULL;
break;
}
}
Client::~Client()
{
if (instance != NULL)
delete instance;
instance = NULL;
}