#include <iostream>using namespace std;class buildcomputer{public: buildcomputer(){} virtual ~buildcomputer(){} virtual void buildmouse()=0; virtual void buildmointor()=0; virtual void buildkeyboard()=0; virtual void buildhost()=0;};class winbuildcomputer : public buildcomputer{public: winbuildcomputer(){} virtual ~winbuildcomputer(){} void buildmouse(){cout<<"build win mouse"<<endl;} void buildmointor(){cout<<"build win mointor"<<endl;} void buildkeyboard(){cout<<"build win keyboard"<<endl;} void buildhost(){cout<<"build win host"<<endl;}};class macbuildcomputer : public buildcomputer{public: macbuildcomputer(){} virtual ~macbuildcomputer(){} void buildmouse(){cout<<"build mac mouse"<<endl;} void buildmointor(){cout<<"build mac mointor"<<endl;} void buildkeyboard(){cout<<"build mac keyboard"<<endl;} void buildhost(){cout<<"build mac host"<<endl;}};class director{private: buildcomputer *instance;public: director(buildcomputer *bd) :instance(bd){} virtual ~director(){} void creator() { instance->buildmouse(); instance->buildmointor(); instance->buildkeyboard(); instance->buildhost(); }};int main(){ buildcomputer *p=new macbuildcomputer; director *dc=new director(p); dc->creator(); delete dc; delete p; p=new winbuildcomputer; dc=new director(p); dc->creator(); delete dc; delete p; system("pause"); return 0;}