【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;
	}
	
}
相关推荐
大母猴啃编程1 小时前
Socket编程UDP
linux·网络·c++·网络协议·udp
胖虎11 小时前
iOS中的设计模式(十二)- 迭代器模式(Iterator Pattern)在 iOS 开发中的实践
设计模式·迭代器模式
程序喵大人1 小时前
源码剖析:iostream 的缓冲区设计
开发语言·c++·iostream
liu****1 小时前
4.哈希扩展
c++·算法·哈希算法·位图·bitset
70asunflower1 小时前
CUDA基础知识巩固检验练习题【附有参考答案】(6)
c++·人工智能·cuda
仰泳的熊猫1 小时前
题目1882:蓝桥杯2017年第八届真题-k倍区间
数据结构·c++·算法·蓝桥杯
Mikowoo0072 小时前
Visual Studio 2022 下CUDA程序开发
c++·visual studio
Darkwanderor2 小时前
图论——拓扑排序和图上DP
c++·算法·动态规划·图论·拓扑排序
sanshizhang2 小时前
设计模式-责任链模式
java·设计模式·责任链模式
hetao17338372 小时前
2026-03-04~03-06 hetao1733837 的刷题记录
c++·算法