#define win 0 #define mac 1 #include <iostream> using namespace std; class button { public: button(){} virtual void createbutton()=0; }; class macbutton : public button { public: macbutton(){} virtual void createbutton(){cout<<"macbutton"<<endl;} }; class winbutton : public button { public: winbutton(){} virtual void createbutton(){cout<<"winbutton"<<endl;} }; class simplefactory { public: simplefactory(){} button *createproduct(int ID); button *createmacproduct(); button *createwinproduct(); }; button *simplefactory::createproduct(int ID) { if (ID==win) return new winbutton; if (ID==mac) return new macbutton; } button *simplefactory::createwinproduct() { return new winbutton; } button *simplefactory::createmacproduct() { return new macbutton; } int main() { simplefactory fc; button *bt=fc.createproduct(win); bt->createbutton(); delete bt; system("pause"); return 0; }