#include <stdio.h>
#include <iostream>
using namespace std;
//定义鞋子的类型
enum ShoesType
{
ShoesA=0,
ShoesB=1
};
//定义鞋子的虚基类
class BaseShoes
{
public:
virtual void Show() = 0;
};
//A类男鞋
class ManShoesA:public BaseShoes
{
public:
void Show()
{
cout <<"This is ManShoes A"<<endl;
}
};
//B类男鞋
class ManShoesB:public BaseShoes
{
public:
void Show()
{
cout <<"This is ManShoes B"<<endl;
}
};
//工厂类,用于生产鞋子
class ShoesFactory
{
public:
BaseShoes* ProduceShoes(ShoesType st)
{
if (st == ShoesA)
{
return new ManShoesA();
}
else if (st == ShoesB)
{
return new ManShoesB();
}
else
{
return NULL;
}
}
};
int main()
{
ShoesFactory factory;
ShoesType st = ShoesA;
BaseShoes *pbs = factory.ProduceShoes(st);
pbs->Show();
st = ShoesB;
pbs = factory.ProduceShoes(st);
pbs->Show();
system("pause");
return 0;
}