【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;
	}
	
}
相关推荐
散峰而望19 小时前
C++入门(一)(算法竞赛)
c语言·开发语言·c++·编辑器·github
C_Liu_19 小时前
13.C++:继承
开发语言·c++
凡同学。20 小时前
通信人C++自学
c++·应届生秋招·后端四件套
威桑20 小时前
C++ Linux 环境下内存泄露检测方式
linux·c++
报错小能手20 小时前
C++笔记(面向对象)RTTI操作符
开发语言·c++·笔记
GOATLong20 小时前
git使用
大数据·c语言·c++·git·elasticsearch
十五年专注C++开发21 小时前
Qt-Nice-Frameless-Window: 一个跨平台无边框窗口(Frameless Window)解决方案
开发语言·c++·qt
十子木1 天前
C++ 类似pytorch的库,工具包,或者机器学习的生态
c++·pytorch·机器学习
持梦远方1 天前
【C++日志库】启程者团队开源:轻量级高性能VoyLog日志库完全指南
开发语言·c++·visual studio
许长安1 天前
C++中指针和引用的区别
c++·经验分享·笔记