看看抽象工厂 感觉迷迷糊糊的 上上网 看看例子 随便写写 也不知道自己写的是不是一个抽象工厂的例子 嘿嘿 如下:#include <iostream> using namespace std; class person { public: virtual void eat(){cout<<"人吃饭"<<endl;} virtual void jump(){cout<<"人跳"<<endl;} virtual void sleep(){cout<<"人睡觉"<<endl;} }; class disan: public person { public: void eat(){cout<<"李三吃饭"<<endl;} void jump(){cout<<"李三跳"<<endl;} void sleep(){cout<<"李三睡觉"<<endl;} }; class wangsi: public person { public: void eat(){cout<<"王四吃饭"<<endl;} void jump(){cout<<"王四跳"<<endl;} void sleep(){cout<<"王四睡觉"<<endl;} }; class beast { public: virtual void eat(){cout<<"兽吃饭"<<endl;} virtual void jump(){cout<<"兽跳"<<endl;} virtual void sleep(){cout<<"兽睡觉"<<endl;} }; class ox:public beast { public: void eat(){cout<<"兽吃饭"<<endl;} void jump(){cout<<"兽跳"<<endl;} void sleep(){cout<<"兽睡觉"<<endl;} }; class dog:public beast { public: void eat(){cout<<"狗吃饭"<<endl;} void jump(){cout<<"狗跳"<<endl;} void sleep(){cout<<"狗睡觉"<<endl;} }; class fact { public: virtual person* createperson()=0; virtual beast* createBeast()=0; }; class a: public fact { public: person* createperson(){return new disan();} beast* createBeast(){return new dog();} }; class b: public fact { public: person* createperson(){return new wangsi();} beast* createBeast(){return new ox();} }; int main() { fact* p = new a; person* c = p->createperson(); c->eat(); beast* x = p->createBeast(); x->sleep(); fact *xa = new b; person* d = xa->createperson(); d->jump(); beast* cc = xa->createBeast(); cc->eat(); delete p; delete c; delete x; delete d; delete cc; delete xa; system("pause"); } dev c++编程