<p>Consider the following example: </p><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> /*! Invisible class because of truncation */</div><divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> class Invisible { };</div><divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> </div><divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> /*! Truncated class, inheritance relation is hidden */</div><divclass="line"><aname="l00005"></a><spanclass="lineno"> 5</span> class Truncated : public Invisible { };</div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> </div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> /* Class not documented with doxygen comments */</div><divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> class Undocumented { };</div><divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> </div><divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> /*! Class that is inherited using public inheritance */</div><divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> class PublicBase : public Truncated { };</div><divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> </div><divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> /*! A template class */</div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> template<class T> class Templ { };</div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> </div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> /*! Class that is inherited using protected inheritance */</div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> class ProtectedBase { };</div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> </div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> /*! Class that is inherited using private inheritance */</div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> class PrivateBase { };</div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> </div><divclass="line"><aname="l00022"></a><spanclass="lineno"> 22</span> /*! Class that is used by the Inherited class */</div><divclass="line"><aname="l00023"></a><spanclass="lineno"> 23</span> class Used { };</div><divclass="line"><aname="l00024"></a><spanclass="lineno"> 24</span> </div><divclass="line"><aname="l00025"></a><spanclass="lineno"> 25</span> /*! Super class that inherits a number of other classes */</div><divclass="line"><aname="l00026"></a><spanclass="lineno"> 26</span> class Inherited : public PublicBase,</div><divclass="line"><aname="l00027"></a><spanclass="lineno"> 27</span>  protected ProtectedBase,</div><divclass="line"><aname="l00028"></a><spanclass="lineno"> 28</span>  private PrivateBase,</div><divclass="line"><aname="l00029"></a><spanclass="lineno"> 29</span>  public Undocumented,</div><divclass="line"><aname="l00030"></a><spanclass="lineno"> 30</span>  public Templ<int></div><divclass="line"><aname="l00031"></a><spanclass="lineno"> 31</span> {</div><divclass="line"><aname="l00032"></a><spanclass="lineno"> 32</span>  private:</div><divclass="line"><aname="l00033"></a><spanclass="lineno"> 33</span>  Used *m_usedClass;</div><divclass="line"><aname="l00034"></a><spanclass="lineno"> 34</span> };</div></div><!-- fragment --><p> This will result in the following graph:</p>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>