c++类如何构建,如何实现派生和多态

  1. 汽车零部件管理系统中存在如下业务实体:整车(编号、名称、型号、类型、排量、重量、外观尺寸、颜色、生产日期、产地等,也可以看成是一个部件),部件(编号、名称、装配时间、重量、外观尺寸、产地、备注等),零件(编号、名称、类型、材料、重量、外观尺寸、颜色、生产日期、产地等),装配信息(部件编号、零部件编号、装配时间、备注等,部件之间可以嵌套,亦即部件也可以由子部件构成);
  2. 支持对以上相关业务实体的新增、删除、属性编辑、查询等操作;
  3. 该管理系统中以上所有业务实体的保存与打开等文件操作。

请问这个类怎么建啊?我现在不清楚整车,部件,零件,装配信息之间的关系,不知道用谁作为基类、用谁作为派生类。他们之间怎么链接啊,有没有人帮我理一下思路

首先,不说类的设计和扩展性,只说这几个间的关系,整车可能由部件和零件构成,部件可能由零件构成,装配信息则是描述他们之间的关系。
这几个之间我理解没有继承的关系。而是组合 ,我理解他们的关系是这样的,车和部件类的成员有装配信息,然后车的成员有部件、零件,部件的成员也有零件和部件。因此车、部件、零件抽象成组件类,这样这三者都可以是组件,也就是说车也可以由车、部件、零件组成
实际上,车、部件、零件这几个可以抽象出一个实体类,将公共属性编号、名称作为实体类的属性,这样做,也和你所有业务实体的保存与打开等文件的操作对应上了,
而车、部件、零件继承这个类。其实车、部件、零件、装配信息这几个类也可以抽象,以汽车为例,就写一个ICar的接口类,因为方便以后你要添加一种新型的车,有更多的属性,就直接继承然后增加属性就行了,同样部件、零件、装配信息也是一样,随着车的增加,部件、零件、装配信息这几个类肯定有相应的改变。
当然,你也可以暂时先不考虑车、部件、零件、装配信息这几个类的抽象,因为这样考虑就多了。

我建议把整车当作基类,另外两个派生。因为多态是父类指针或者引用来操作子类对象,必然是属性多的那个类作为基类更合适