【C++设计模式】用简单工厂模式实现按汽车重量输出汽车类型

2023年8月24日,周四凌晨


cpp 复制代码
#include<iostream>

class CarType{
public:
	virtual std::string getType()=0;
};

class MiniCar:public CarType{
public:
	std::string getType() override{
		return "小型车";
	};
};

class MidSizeCar:public CarType{
public:
	std::string getType() override{
		return "中型车";
	};
};

class HeavyCar:public CarType{
public:
	std::string getType() override{
		return "重型车";
	};
};

class CarTypeFactory{
public:
	CarType* createCarType(int weight){
		
		if(weight<5){
			return new MiniCar();
		}else if(weight<10){
			return new MidSizeCar();
		}else{
			return new HeavyCar();
		}
		
		return nullptr;
	}
};


int main(){
	int weight;
	CarType *carType;
	CarTypeFactory *factory=new CarTypeFactory();
	
	while(1){
		std::cout<<"请输入汽车的重量(吨):";
		std::cin>>weight;
			
		carType=factory->createCarType(weight);
		std::cout<<carType->getType()<<std::endl;
	}
	
}
相关推荐
wangchen_01 分钟前
C++<fstream> 深度解析:文件 I/O 全指南
开发语言·前端·c++
行稳方能走远2 分钟前
Android C++ 学习笔记
android·c++
郝学胜-神的一滴17 分钟前
Linux多线程编程:深入理解pthread_cancel函数
linux·服务器·开发语言·c++·软件工程
Trouvaille ~20 分钟前
【C++篇】让错误被温柔对待(下):异常高级特性与最佳实践
运维·开发语言·c++·异常·raii·编程实践·基础入门
小无名呀31 分钟前
使用C语言连接MySQL
数据库·c++·mysql
雾岛听蓝43 分钟前
C++ string 类解析
开发语言·c++
子枫秋月44 分钟前
模拟C++string实现
数据结构·c++·算法
oioihoii1 小时前
C++内存安全方案前沿研究
c++·安全·mfc
十五年专注C++开发1 小时前
QProcess在Windows下不能正常启动exe的原因分析
开发语言·c++·windows·qprocess·createprocess
无限进步_1 小时前
C++多态全面解析:从概念到实现
开发语言·jvm·c++·ide·git·github·visual studio