#************************
************************#
#include<iostream>
using namespace std;
typedef enum
{
T80 = 0,
T88
}TankType;
class Tank
{
public:
virtual void createTank()=0;
};
class Tank80 : public Tank
{
public:
void createTank()
{
cout<<"Tank80"<<endl;
}
};
class Tank88 : public Tank
{
public:
void createTank()
{
cout<<"Tank88"<<endl;
}
};
class TankFactory
{
public:
Tank* makeTank(TankType type)
{
switch (type)
{
case 0 :
return new Tank80();
case 1 :
return new Tank88();
default:
return NULL;
}
}
};
int main(int argc,char **argv)
{
TankFactory* fac = new TankFactory();
Tank* tank1 = fac->makeTank(T80);
tank1->createTank();
Tank* tank2 = fac->makeTank(T88);
tank2->createTank();
delete tank1;
delete tank2;
delete fac;
return 0;
}