// SimpleFactory.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "ostream.h"
//定义抽象类
class CAnimal
{
protected:
int m_Weight; /
// SimpleFactory.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "ostream.h" //定义抽象类 class CAnimal { protected: int m_Weight; //重量 public: virtual void Cry() = 0; }; //定义具体类 class CFish: public CAnimal { public: virtual void Cry() { cout <<"I am Fish!/n"; } }; class CBird : public CAnimal { public: virtual void Cry() { cout <<"I am Bird! /n"; } }; //定义工厂类 class CFactory { public: CAnimal* CreateObj(int Flag) { switch (Flag) { case 0: return new CBird(); break; case 1: return new CFish(); break; } } }; int main(int argc, char* argv[]) { //定义工厂对象 CFactory factory; CAnimal * pAnimal; pAnimal = factory.CreateObj(0); pAnimal->Cry(); delete pAnimal; pAnimal = factory.CreateObj(1); pAnimal->Cry(); delete pAnimal; return 0; }