/*! 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;
};
6条答案
按热度按时间11dmarpk1#
试试doxygen。它也可能随您的发行版一起提供。
您可能需要GraphViz来生成图形。有a simple example和output。
这是一个更复杂的例子,来自doxygen生成的图例文件:
代码(注意:如果您只想生成图形,则不需要注解。):
结果:
你不需要注解你的代码来生成这些图。第一个例子根本没有注解。第二个例子有一个没有doxygen样式注解的类。只需设置适当的参数(至少应设置
EXTRACT_ALL = YES
。我不知道这是否是所有需要的)。byqmnocz2#
有一个很有前途的新工具叫做
cpp-depenencies
。它可以生成
component
依赖关系图(如下所示)以及class
层次结构图(通过传递一个选项将每个源文件视为组件)。还有
cpp_dependency_graph
,它能够生成dot
,d3.js
或JSON格式的组件/包含依赖关系图。下面是一个
d3.js
可视化示例。免责声明-我是
cpp_dependency_graph
的作者。gab6jxml3#
如果您使用Eclipse作为IDE,则可以使用类型层次结构来查看类层次结构。
plicqrtu4#
如果你使用kdevelop,你可以安装kdevcontrolflowgraphview plugin。
2uluyalo5#
我建议大家尝试一下Source Navigator,一个用于C/C++/Fortran/Java/Tcl/PHP/Python的IDE
赢:https://sourcenav.sourceforge.net/
Linux(& mac?):http://chenweixiang.github.io/2019/09/09/source-navigator-ng.html#install-source-navigator-ng-4-5-on-linuxmint
它有点过时,位一直是一个有用的工具很长一段时间。已经有一段时间没有更新了(~2014),所以它会被较新的c14(+)特性所迷惑。可能也有一些来自C11。但是为了显示相当复杂的类层次结构,包括依赖关系调查和粗略的代码导航,它就足够了(前提是它不会在一些复杂的代码结构上崩溃)。
值得注意的是,曾经有源导航器扩展-基本上是一样的,但你可以调度几个独立的窗口。
下面是源代码:https://github.com/rogerz/sourcenavigator
djp7away6#
根据我的经验,Source Trail是一个易于使用的工具,它具有直观的GUI,可以帮助您探索语言元素与其他相关元素之间的关系。它在MacOS上运行得很好。截至2021年9月,它不再开发,但存储库仍然可用。