Linux中用于C ++的类层次结构/依赖关系图生成器

有没有一些工具来检查Linux中的C ++代码生成类层次结构/依赖关系图?

我有这个大集合的C ++文件给我,这样的工具将是非常宝贵的帮助我了解源代码。 我对理解它有点纠结。

尝试doxygen 。 它也可能随您的发行版一起发货。

您可能需要GraphViz来生成图表。 有一个简单的例子和输出 。

这是由doxgen生成的图例文件的一个更复杂的例子:

代码(注意:如果您只想生成图表,则不需要注释):

/*! Invisible class because of truncation */ class Invisible { }; /*! Truncated class, inheritance relation is hidden */ class Truncated : public Invisible { }; /* Class not documented with doxygen comments */ class Undocumented { }; /*! Class that is inherited using public inheritance */ class PublicBase : public Truncated { }; /*! A template class */ template<class T> class Templ { }; /*! Class that is inherited using protected inheritance */ class ProtectedBase { }; /*! Class that is inherited using private inheritance */ class PrivateBase { }; /*! Class that is used by the Inherited class */ class Used { }; /*! Super class that inherits a number of other classes */ class Inherited : public PublicBase, protected ProtectedBase, private PrivateBase, public Undocumented, public Templ<int> { private: Used *m_usedClass; }; 

结果:

在这里输入图像描述

您不需要评论您的代码来生成这些图表。 第一个例子根本没有评论。 第二个例子有一个类没有Doxygen风格的评论。 只要设置适当的参数(至少应该设置EXTRACT_ALL = YES我不记得是否这是所需要的)。

如果您将Eclipse用作IDE,则可以使用类型层次结构来查看类层次结构。

如果你使用kdevelop,你可以安装kdevcontrolflowgraphview插件 。