⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 factorymethod.cpp

📁 《Visual C++视频技术方案宝典》配套光盘
💻 CPP
字号:
// FactoryMethod.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:
	virtual CAnimal* CreateObj() = 0;

};
//定义工厂具体类
class CFactory1 : public CFactory
{
public:
	virtual CAnimal* CreateObj()
	{
		return new CBird();
	}
};
class CFactory2: public CFactory
{
public:
	virtual CAnimal* CreateObj()
	{
		return new CFish();
	}
};

int main(int argc, char* argv[])
{

	CAnimal* pAnimal1,*pAnimal2;
	CFactory * pFactory1,*pFactory2;
	pFactory1 = new CFactory1();
	pAnimal1 = pFactory1->CreateObj();
	pAnimal1->Cry();

	pFactory2 = new CFactory2();
	pAnimal2 = pFactory2->CreateObj();
	pAnimal2->Cry();

	delete pAnimal1;
	delete pAnimal2;
	delete pFactory1;
	delete pFactory2;

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -