2011-02-09 56 views
0

這肯定是一個noob問題,但我無法在Doxygen文檔中找到答案。我不知道是否使用:使用文件或類來記錄doxygen中的類?

@file

@class

記錄我的頭文件時。

原因是,如果我放入文件,則所有註釋僅出現在「文件」選項卡中,但不出現在「類」選項卡中(每個)。

對於cpp沒關係,我只是使用文件而且它很好,但是如果我在頭文件中使用了文件和類(在類聲明開始之前的開始和類中的文件),那麼我會得到重複條目在生成的文檔中的類...

我在做什麼錯了?有什麼建議麼?想法?

問候, 亞歷

編輯:我現在遇到了新的問題。爲了避免循環依賴條件,我宣佈我的課兩次在頭文件(可能這是不是爲了避免循環依賴的最好的方式,但它正常工作對我來說),例如:

#ifndef EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL 
#define EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL 

namespace eu_sofia_kpi_common 
{ 
    class KPI_CPP_API AbstractThread; 
} 

#define EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL_END 
#endif EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL 

#ifdef EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL_END 
#ifndef EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DEF 
#define EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DEF 

namespace eu_sofia_kpi_common 
{ 

    class KPI_CPP_API AbstractThread 
    { 

    public: 
     AbstractThread(); 
     virtual ~AbstractThread(); 
     ///start method, derived classes must implement this method to initialize their boost::shared_ptr<boost::thread> pointer member object 
     virtual int start() = 0; 
     //stop method 
     virtual void stop() = 0; 

    protected: 
     ///Pointer to a boost thread to be inherited and that children classes must use in the implementation of the start and stop methods 
     boost::shared_ptr<boost::thread> m_thread; 
    }; 

} 

#endif EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DEF 
#endif EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL_END 

正如你所看到的,在我的「真實」聲明之前,我有一個前瞻性聲明。現在,如果我使用@class,Doxygen會抱怨與此類相關的不一致問題,儘管它會生成該類的文檔。我的猜測是,任何被#ifdef或#ifndef Doxygen包圍的東西似乎都不太喜歡它......

+1

你在記錄_class_嗎?如果是這樣,你應該使用`@ class` doxytag。你在記錄_file_嗎?如果是這樣,你應該使用`@ file` doxytag。 – 2011-02-09 15:28:50

+0

我的類定義是在一個頭文件中,這是一個文件...然後該怎麼做? – AlejandroVK 2011-02-09 15:33:54

回答

0

我通常都不使用,除非我想指定一個替代包含路徑或類似的東西。通常情況下,它看起來像這樣:

/// Tunables loader. 
/** This class contains a set of functions for loading tunables from 
* file. Usually you only need one QuaTunablesLoader object in your 
* program. Once its work is done, you can safely destroy it. 
* 
* ... blah, blah, blah ... 
* */ 
class QuaTunablesLoader { 

這實際上相當於使用@class,所以回答你的問題是肯定的,你應該記錄類時使用@class。如果你的頭文件不包含任何其他內容,你可能根本不應該記錄它,因爲文檔只會說「這個文件包含類SomeClass的聲明」。如果文件中包含更多內容,比如朋友函數,則應該記錄文件(顯然,使用@file),可能會提供對類的引用。

相關問題