我必须实现支持抽象数字的数据结构。
集合是数字的集合
排序的是一个排序的集合。
list是数字(包括重复项)的列表集合
set是不带dup的数字集合。
链接和数组是保存数据的格式(链接表示在堆中扩散,数组表示连续的内存量)
然后是类的组合(一个列表,在图片中称为arraylist等数组)
一个简单的uml:

最后四个组合中的每一个(图片中的最后一行)都需要实现一个排序的方法调用,以生成自己的排序副本(返回排序类型)。我想做4个新的类,它们是从排序继承而来的,最后一行的类(例如。一个继承自排序类和ArrayList类的ArrayListSorted类),但是我有菱形问题(在相同的示例中)。Sorted和ArrayList都是集合的后代)
有没有更好的设计方案?
发布于 2013-05-17 22:01:36
在C++中,钻石问题可以通过使用虚拟公共继承来解决。使用虚拟公共继承时,基类只继承一次:
class A {...};
class B : virtual public A {...};
class C : virtual public A {...};
class D : public B, public C {...};https://stackoverflow.com/questions/16608872
复制相似问题