// FactoryExample.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "Car.h"
#include "CarFactory.h"
#include "CarSimpleFactory.h"
int main()
{
std::unique_ptr<ICar> pCar;
std::unique_ptr<CCarSimpleFactory> factory(new CCarSimpleFactory());
//[1]
std::cout << "Car Factory mode1:\n";
pCar.reset(factory->create(eBMWCar)); //宝马
pCar->run();
pCar.reset(factory->create(eDAZHONGCar)); //大众
pCar->run();
pCar.reset(factory->create(eJILICar)); //吉利
pCar->run();
pCar.reset(factory->create(11)); //不生产这种车
if (pCar->isNull()) {
std::cout << "CCarSimpleFactory not product the 11 type car!!!\n";
}
pCar.reset(factory->create(ePORSCHECar)); //保时捷
pCar->run();
#if 0
//[2]
std::cout << "\nCar Factory mode2:\n";
pCar.reset(factory->createEx<ICar, CBmwCar>()); //宝马
pCar->run();
pCar.reset(factory->createEx<ICar, CDazhongCar>()); //大众
pCar->run();
pCar.reset(factory->createEx<ICar, CJiliCar>()); //吉利
pCar->run();
pCar.reset(factory->createEx<ICar, CPorscheCar>()); //保时捷
pCar->run();
pCar.reset(factory->createEx<ICar, CChangAnCar, int>(5)); //长安
pCar->run();
#endif
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
流星雨爱编程
- 粉丝: 4641
- 资源: 8
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈