C++设计模式之工厂模式
2016-02-25 15:54
393 查看
#define APPLE 1 #define ORANGE 2 class XFruit { public : virtual void ShowName() = 0; } ; //派生出子类商品 class Apple : public XFruit { public : void ShowName (){ShowMessage("My name is apple"); } }; class Orange : public XFruit { public : void ShowName(){ShowMessage("My name is orange");} } ; //工厂类基类 class FruitShop { public: XFruit* SaleFruit(int type) { if(type == APPLE) { return new Apple; } else if(type == ORANGE) { return new Orange; } else { return NULL; } } } ; void __fastcall TForm1::RzButton1Click(TObject *Sender) { FruitShop * fruitshop = new FruitShop(); fruitshop->SaleFruit(APPLE)->ShowName(); delete fruitshop; } //--------------------------------------------------------------------------- void __fastcall TForm1::RzButton2Click(TObject *Sender) { FruitShop * fruitshop = new FruitShop(); fruitshop->SaleFruit(ORANGE)->ShowName(); delete fruitshop; }
相关文章推荐
- 面试题六 C/C++面试秘笈 之约瑟夫问题的解答--程序员面试题
- C++的运算符重载
- c++模板元编程
- 面试题五 C/C++面试秘笈 之链表的正向排序--程序员面试题
- 请问在VC++2010中如何连接用Access2010创建好的accdb数据库?
- [c++]string中删除相同字符
- C语言 链表的使用(链表的增删查改,链表逆转,链表排序)
- C++ template —— tuple(十三)
- 面试题四 C/C++面试秘笈 之判断链表是否存在环形链表问题-程序员面试题
- c++服务端用webservices【gsoap】做服务端与java后台对接信息的测试工具
- C++虚继承的概念
- 面试题三 C/C++面试秘笈 查找单链表的中间元素 --程序员面试题
- c语言入门之项目4.3——利用for循环求1-1/2*2+1/2*2*2...-1/2*2*2*2到2的8次方
- winodws平台C++共享内存实现
- C++基础知识易错点总结(2)
- C语言知识整理(二)
- [C++]智能指针
- 面试题二 C/C++面试秘笈 之单链表逆转/反转
- AVL树的插入删除操作
- 本科教育忽略的黄金C++<5> 泛型算法-特定容器算法