2011-12-14 63 views

Trả lời

12

Hãy thử doxygen. Nó cũng có thể được vận chuyển với phân phối của bạn.

Bạn có thể cần GraphViz để tạo biểu đồ. Có a simple exampleoutput.

Và đây là một ví dụ phức tạp hơn từ các tập tin huyền thoại được tạo ra bởi doxgen:

Mã (Chú ý:. Nếu bạn chỉ muốn tạo ra các đồ thị, các ý kiến ​​đều không bắt buộc):

/*! 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; 
}; 

Kết quả:

enter image description here

bạn không cần phải bàn luận đồng của bạn de để tạo ra các biểu đồ này. Ví dụ đầu tiên không có ý kiến ​​gì cả. Ví dụ thứ hai có một lớp không có nhận xét kiểu Doxygen. Chỉ cần đặt tham số thích hợp (ít nhất là EXTRACT_ALL = YES nên được đặt. Tôi không thể nhớ liệu đây có phải là tất cả những gì cần thiết).

+1

Doxygen không yêu cầu bạn nhận xét ở định dạng cụ thể để sau này có thể tạo ra bất kỳ thứ gì không? Tôi nghĩ rằng những gì OP yêu cầu là một công cụ có thể vẽ sơ đồ phân cấp lớp bằng cách phân tích mã số –

+4

@ArmenTsirunyan Bình luận không cần thiết cho DoxyGen hoạt động. Nó thậm chí có thể được sử dụng trên một dự án mà không có bình luận nào cả. Bạn chỉ cần thiết lập các thông số thích hợp. – fefe

+1

@fefe: _ Nó thậm chí có thể được sử dụng trên một dự án mà không có bình luận gì cả ._ Heh, tôi nghĩ rằng nó đã được sử dụng trên các dự án không có ý kiến ​​gì cả, vì vậy các nhà phát triển lười biếng có thể nói: xem, chúng tôi có tài liệu cho mã của chúng tôi! – ninjalj

1

Nếu bạn sử dụng Eclipse làm IDE, bạn có thể sử dụng phân cấp kiểu để xem thứ bậc lớp.

Các vấn đề liên quan