2011-12-14 13 views
11

LinuxのC++コードを調べてクラス階層/依存関係図を生成するツールはありますか?LinuxのC++のクラス階層/依存関係図ジェネレータ

私はこの大きなコレクションのC++ファイルを私に与えてくれました。そのようなツールは、 のソースコードを理解する上で非常に役立ちます。私はそれを理解するのにちょっと絡み合っている。

答えて

12

お試しdoxygenまた、あなたのディストリビューションに同梱されているかもしれません。

グラフを生成するには、GraphVizが必要な場合があります。 a simple exampleoutputがあります。

そして、これは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; 
}; 

結果:

enter image description here

あなたはあなたの協力をコメントする必要はありませんこれらのグラフを生成する。最初の例は全くコメントがありません。 2番目の例では、Doxygenスタイルのコメントを持たないクラスが1つあります。適切なパラメータを設定してください(最低でもEXTRACT_ALL = YESを設定する必要があります)。

+1

doxygenでは、後で何かを生成できるように特定の形式でコメントする必要がありますか?私はOPが求めているのは、コードを解析してクラス階層図を描くことができるツールだと思います。 –

+4

@ArmenTsirunyanコメントはDoxyGenが動作するために必要ではありません。コメントのないプロジェクトでも使用できます。適切なパラメータを設定するだけです。 – fefe

+1

@fefe:_これは、全くコメントのないプロジェクトでも使用できます._ Heh、私はそれがコメントなしのプロジェクトでほとんど使用されていると思ったので、怠惰な開発者は言うことができます: – ninjalj

1

EclipseをIDEとして使用している場合は、タイプ階層を使用してクラス階層を表示できます。

関連する問題