c++实战项目:工业设备工厂系统

项目要求设计一个工业设备工厂系统,用抽象基类、继承、多态性和工厂模式来实现一个简单的工业设备管理系统,生成不同类型的数据。

#include 
#include 
using namespace std;

//抽象基类:工业设备
class IndustrialDevice{
	public:
		virtual void displayInfo()=0;//纯虚函数 
}; 

//具体类:传感器
class Sensor : public IndustrialDevice{
	private:
		string type;
	public:
		Sensor (string t):type(t){} //构造函数 初始化类表 
		//在程序中加override 关键字,可以避免派生类中忘记重写虚函数的错误。
		void displayInfo() override {
			cout<<"传感器类型"<displayInfo();
	device2->displayInfo();
	
	delete device1;
	delete device2;
	return 0;
}

这段代码主要涉及到以下几个重要的知识点:
 
1.抽象基类和纯虚函数:
 -  IndustrialDevice  是一个抽象基类,其中包含一个纯虚函数  displayInfo() 。纯虚函数是在基类中声明但没有具体实现的函数(函数体为  = 0 ),它的目的是为派生类提供一个统一的接口。由于存在纯虚函数, IndustrialDevice  类不能被实例化,只能作为其他类的基类。
- 纯虚函数迫使派生类必须实现该函数,从而实现多态性。
 
2.继承:
 -  Sensor  类和  RobotArm  类都继承自  IndustrialDevice  类。继承允许派生类( Sensor  和  RobotArm )继承基类( IndustrialDevice )的属性和方法,并可以根据需要重写(覆盖)基类的虚函数。
 - 在 C++ 中,使用  :  符号来表示继承关系,例如  class Sensor : public IndustrialDevice  表示  Sensor  类以公有方式继承自  IndustrialDevice  类。
 
3.虚函数和多态性:
 - 在  IndustrialDevice  类中声明的  displayInfo()  函数是虚函数,通过在派生类( Sensor  和  RobotArm )中使用  override  关键字重写该函数,实现了多态性。
 - 多态性使得我们可以使用基类指针(或引用)来调用派生类的重写函数,具体调用哪个派生类的函数取决于指针(或引用)所指向的实际对象类型。
 
4。类的成员变量和构造函数:
 -  Sensor  类有一个私有成员变量  type ,并通过构造函数  Sensor(string t)  来初始化该变量。
 -  RobotArm  类有一个私有成员变量  power ,并通过构造函数  RobotArm(int p)  来初始化该变量。
 - 构造函数用于在创建对象时对对象的成员变量进行初始化。
 
5.工厂模式:
 -  DeviceFactory  类是一个简单的工厂类,它提供了一个  createDevice  方法,根据传入的设备类型字符串(如 "sensor" 或 "robot")来创建相应的设备对象( Sensor  或  RobotArm  对象)。
 - 工厂模式是一种创建型设计模式,它将对象的创建和使用分离,使得代码更加灵活和可维护。
 
6.内存管理:
 - 在  main  函数中,通过  new  操作符动态分配了  Sensor  和  RobotArm  对象的内存,并将指向这些对象的指针存储在  IndustrialDevice  指针中。
 - 使用完这些对象后,通过  delete  操作符释放了动态分配的内存,以避免内存泄漏。内存管理在 C++ 中非常重要,特别是在使用动态内存分配时。
 

你可能感兴趣的:(c++,开发语言)