Doxygen は、graphviz 1.5 の "dot" ツールを利用して、 より高度な図(ダイアグラム)とグラフを生成することができます。 Graphviz は、AT&T and Lucent Bell Labs の手による、 オープンソースでクロスプラットフォームなグラフ描画ツールキットです (http://www.graphviz.org/)。
コマンドパスの中に "dot" ツールが在存していれば、 設定ファイルで HAVE_DOT を YES に設定することで、 doxygen からそれを使うことができます。
Doxygen は "dot" ツールを利用して以下のようなグラフを生成します:
YES に設定されていれば、 クラス階層のグラフ表現が、テキストによる表現とともに、描画されます。 現在、この機能は HTML に対してのみサポートされています。YES に設定されていれば、 ドキュメント付けされた各クラスについて、直接および間接的な継承関係を 示すグラフが生成されます。これは、ビルトインのクラス継承図生成機能を 無効にします。 YES に設定されていれば、 ドキュメント付けされ、少なくとも他の1つのファイルをインクルードしている ファイルについて、インクルードの依存関係のグラフが生成されます。 A がクラス B 型のメンバー変数 m_a を保持していれば、 A は、m_a というラベルの付いた、B に向かう矢印を持ちます)。
では、クラス図における要素は以下のような意味を持っています: B が クラス C の下位タイプであって、 クラス A が C の型のメンバー変数 m を持つなら、 クラス A はクラス B を利用していることになります (たとえば、C は B、\c B*、T<B>* でも構いません)。
diagrams_a.h
#ifndef _DIAGRAMS_A_H
#define _DIAGRAMS_A_H
class A { public: A *m_self; };
#endif
diagrams_b.h #ifndef _DIAGRAMS_B_H
#define _DIAGRAMS_B_H
class A;
class B { public: A *m_a; };
#endif
diagrams_c.h #ifndef _DIAGRAMS_C_H
#define _DIAGRAMS_C_H
#include "diagrams_c.h"
class D;
class C : public A { public: D *m_d; };
#endif
diagrams_d.h #ifndef _DIAGRAM_D_H
#define _DIAGRAM_D_H
#include "diagrams_a.h"
#include "diagrams_b.h"
class C;
class D : virtual protected A, private B { public: C m_c; };
#endif
diagrams_e.h #ifndef _DIAGRAM_E_H
#define _DIAGRAM_E_H
#include "diagrams_d.h"
class E : public D {};
#endif
ここ
をクリックすると、doxygen によって生成された HTML ドキュメントが表示されます
(ここでは、EXTRACT_ALL = YES が設定されています)。
1.2.11.1 の開発者: Dimitri van Heesch,
© 1997-2001