【问题标题】:How to make Doxygen show diamond inheritance graphs如何让 Doxygen 显示菱形继承图
【发布时间】:2014-07-11 20:53:18
【问题描述】:

Doxygen 有一个非常简洁的功能,它可以从代码生成继承图。但是,当从具有公共基类的类中使用多重继承时,该图显示了两个单独的基类(即使我使用的是虚拟继承,如基类周围的虚线所示)

我怎样才能让 Doxygen 的情节更像下面这样。 . .

     D
    / \
   B   C
    \ /
     A

而不是:(就像没有虚拟继承一样)

     D
   /   \
   B   C
   |   |
   A   A

【问题讨论】:

  • 你知道,我很久以前就赞成并收藏了它,但我越想它,我就越认为 doxygen 实际上就在这里,因为 D 将有 2 个 A 实例。
  • 如果通过class B : public virtual A {}虚拟继承,则不会有2个A实例
  • 在 Ubuntu 18.04.3 上,使用 doxygen/doxywizard 1.8.13,我对“内置类图生成器”有同样的问题。如果我使用dot(即graphviz(dot)版本2.40.1)来生成图表,那么我会得到一个合适的菱形,但是我失去了阴影/虚线轮廓,表明最顶层的类实际上已经被继承了。很烦人。

标签: c++ doxygen multiple-inheritance virtual-inheritance diamond-problem


【解决方案1】:

如果您将 HAVE_DOT 标签设置为 YES,则 doxygen 将假定 dot 工具是 可从路径获得。该工具是 Graphviz 的一部分(参见: http://www.graphviz.org/),来自 AT&T 和 Lucent 的图形可视化工具包 贝尔实验室。如果此选项为 设置为否 默认值为:否。

设置为

HAVE_DOT = 是

【讨论】:

  • 值得补充的是,如果你没有“点”,在 Ubuntu 上它只是一个 sudo apt-get install graphviz 。
猜你喜欢
  • 2012-10-16
  • 1970-01-01
  • 2016-09-15
  • 2018-12-28
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
  • 2015-05-23
  • 2023-03-09
相关资源
最近更新 更多