#include
using namespace std;
class car//抽象类
{
public:
virtual void construct() = 0;
};
class BMW:public car
{
public:
void construct()
{
cout<<"造一辆宝马汽车"<construct();//汽车类本身去造车子,耦合度太高
// delete c;
// c = new BENZ;
// c->construct();
// delete c;
// car * c;
// factory *f = new factory;//创建一个工厂
// c = f->ceratBENZ();//工厂造车
// c->construct();//显示汽车
// delete c;
// delete f;
// c = f->ceratBMW();//工厂造车
// c->construct();//显示汽车
// c = f->ceratAODI();//工厂造车
// c->construct();//显示汽车
// delete c;
// delete f;
car *c ;
factory * f = new BMWF;//选择不同的工厂
c = f->create();
c->construct();
f = new BENZF;
c = f->create();
c->construct();
f = new AODIF;
c = f->create();
c->construct();
delete f;
delete c;
return 0;
}