[c++] How to use doxygen to create UML class diagrams from C++ source

Hmm, this seems to be a bit of an old question, but since I've been messing about with Doxygen configuration last few days, while my head's still full of current info let's have a stab at it -

I think the previous answers almost have it:

The missing option is to add COLLABORATION_GRAPH = YES in the Doxyfile. I assume you can do the equivalent thing somewhere in the doxywizard GUI (I don't use doxywizard).

So, as a more complete example, typical "Doxyfile" options related to UML output that I tend to use are:

EXTRACT_ALL          = YES
CLASS_DIAGRAMS      = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT             = YES
CLASS_GRAPH          = YES
COLLABORATION_GRAPH  = YES
UML_LOOK             = YES
UML_LIMIT_NUM_FIELDS = 50
TEMPLATE_RELATIONS   = YES
DOT_GRAPH_MAX_NODES  = 100
MAX_DOT_GRAPH_DEPTH  = 0
DOT_TRANSPARENT      = YES

These settings will generate both "inheritance" (CLASS_GRAPH=YES) and "collaboration" (COLLABORATION_GRAPH=YES) diagrams.

Depending on your target for "deployment" of the doxygen output, setting DOT_IMAGE_FORMAT = svg may also be of use. With svg output the diagrams are "scalable" instead of the fixed resolution of bitmap formats such as .png. Apparently, if viewing the output in browsers other than IE, there is also INTERACTIVE_SVG = YES which will allow "interactive zooming and panning" of the generated svg diagrams. I did try this some time ago, and the svg output was very visually attractive, but at the time, browser support for svg was still a bit inconsistent, so hopefully that situation may have improved lately.

As other comments have mentioned, some of these settings (DOT_GRAPH_MAX_NODES in particular) do have potential performance impacts, so YMMV.

I tend to hate "RTFM" style answers, so apologies for this sentence, but in this case the Doxygen documentation really is your friend, so check out the Doxygen docs on the above mentioned settings- last time I looked you can find the details at http://www.doxygen.nl/manual/config.html.

Examples related to c++

Method Call Chaining; returning a pointer vs a reference? How can I tell if an algorithm is efficient? Difference between opening a file in binary vs text How can compare-and-swap be used for a wait-free mutual exclusion for any shared data structure? Install Qt on Ubuntu #include errors detected in vscode Cannot open include file: 'stdio.h' - Visual Studio Community 2017 - C++ Error How to fix the error "Windows SDK version 8.1" was not found? Visual Studio 2017 errors on standard headers How do I check if a Key is pressed on C++

Examples related to uml

UML diagram shapes missing on Visio 2013 Use IntelliJ to generate class diagram How to show "if" condition on a sequence diagram? Eclipse plugin for generating a class diagram Generate UML Class Diagram from Java Project How to use doxygen to create UML class diagrams from C++ source Explanation of the UML arrows What's is the difference between include and extend in use case diagram? What is the difference between aggregation, composition and dependency? What is the difference between association, aggregation and composition?

Examples related to doxygen

How to make an introduction page with Doxygen How to use doxygen to create UML class diagrams from C++ source How to document Python code using Doxygen

Examples related to graphviz

"RuntimeError: Make sure the Graphviz executables are on your system's path" after installing Graphviz 2.38 anaconda - graphviz - can't import after installation Graphviz's executables are not found (Python 3.4) Why is pydot unable to find GraphViz's executables in Windows 8? How to use doxygen to create UML class diagrams from C++ source Graphviz: How to go from .dot to a graph?

Examples related to class-diagram

How to generate Class Diagram (UML) on Android Studio (IntelliJ Idea) Use IntelliJ to generate class diagram Eclipse plugin for generating a class diagram Generate UML Class Diagram from Java Project How to use doxygen to create UML class diagrams from C++ source In UML class diagrams, what are Boundary Classes, Control Classes, and Entity Classes? PHP UML Generator