2012-02-23 154 views
8

在C++中,由于私有继承不被视为is-a关系,它应该如何显示在类图中,并且如果它显示为has-a关系,那么如何才能它是区分组成和私人遗产?如何在UML类图中显示私有继承关系

+4

这是一个很好的问题。问题是私有继承是一个矛盾,这就是为什么它不是UML字典的一部分。我会将它显示为has-a,并说明它是私下继承的。另一种选择是重构你的设计以避免私有继承:你必须拥有它的情况很少,而且很简单,所以很简单,一个普通的工具就可以工作得很好。 – dasblinkenlight 2012-02-23 14:57:33

回答

2

这应该是一个组合关系(在子类侧固黑钻),这是因为:

  • 私有继承意味着“在以下方面实现”,但在这方面,可以简单地同等对待“有一种“关系”。
  • 子类的一个实例明确拥有该对象的基本部分,并且所有权不与任何其他对象共享。