#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 Factory
{
public:
virtual BaseShoes* ProduceShoes() = 0;
};
//专门用于生产A类男鞋的工厂
class ShoesFactoryA:public Factory
{
public:
ManShoesA* ProduceShoes()
{
return new ManShoesA();
}
};
//专门用于生产B类男鞋的工厂
class ShoesFactoryB:public Factory
{
public:
ManShoesB* ProduceShoes()
{
return new ManShoesB();
}
};
int main()
{
ShoesFactoryA sfA;
ShoesFactoryB sfB;
BaseShoes *pbs = sfA.ProduceShoes();
pbs->Show();
pbs = sfB.ProduceShoes();
pbs->Show();
system("pause");
return 0;
}