Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 面向对象类设计-混合类-确定有效的类结构_C++_Oop - Fatal编程技术网

C++ 面向对象类设计-混合类-确定有效的类结构

C++ 面向对象类设计-混合类-确定有效的类结构,c++,oop,C++,Oop,我正在为我的公司设计一个存货类型系统,我有几种不同类型的产品。其中两种类型是两种或两种以上类型的组合: 基本类型:项目 混合类:MA、MB、MC、MAB 派生类型: A(MA+项目) B(MB+项目) C(MC+项目) 和包装零件,它们是: A+B(MAB+项目) A+B+C(单抗+C) *我将需要能够添加更多到这个层次结构在未来 我正在考虑使用Mixin类,其中每个单独的部分都是从Item派生的,还有一个Mixin类。我以前从未真正成功地编写过层次结构。我真的很想知道是否有人认为这是一个很好的

我正在为我的公司设计一个存货类型系统,我有几种不同类型的产品。其中两种类型是两种或两种以上类型的组合:

基本类型:项目

混合类:MA、MB、MC、MAB

派生类型

A(MA+项目)

B(MB+项目)

C(MC+项目)

和包装零件,它们是

A+B(MAB+项目)

A+B+C(单抗+C)

*我将需要能够添加更多到这个层次结构在未来


我正在考虑使用Mixin类,其中每个单独的部分都是从Item派生的,还有一个Mixin类。我以前从未真正成功地编写过层次结构。我真的很想知道是否有人认为这是一个很好的开始去设计这样一个系统?如果没有,还有其他想法吗?

多重继承可以减少代码的复杂性

由您决定哪一种更简单:

class MyItem : public MA<MB<C> > {}; // I'm not sure how your mixin syntax works.
class MyItem: public A, public B, public C {}; // multiple inheritance