2015-04-22 44 views
0

當記錄重載函數時,我收到一條警告消息。如何在Doxygen中記錄重載函數?

Doxygen版本1.8.7

我有一個實現類和一個頭類。 頭類聲明兩個虛擬函數,其中第二個函數重載第一個虛函數。

ClassA.h

virtual void doSomething(int i); 
    virtual void doSomething(int i,int j);` 

實現類實現每個虛擬函數,如下所示

ClassA.cpp

void doSomething(int i) { 
    printf ("doSomething: %d", i); 
    } 

    void doSomething(int i,int j) { 
    printf ("doSomething: %d", i); 
    printf ("doSomething: %d", j); 
    } 

我需要在doxygen的記錄既doSomething的功能。 我該怎麼做?

我試圖記錄h文件如下:

嘗試1:

ClassA.h

/*! 
    * \fn void doSomething(int i) 
    * do something with i 
    */ 
    virtual void doSomething(int i); ` 

    /*! 
    * \fn void doSomething(int i, int j) 
    * do something with i and j 
    */ 
    virtual void doSomething(int i,int j); 

嘗試2:

/*! 
    * \fn void doSomething(int i) 
    * do something with i 
    */ 
    virtual void doSomething(int i); 

    /*! 
    * \overload void doSomething(int i, int j) 
    * do something with i and j 
    */ 
    virtual void doSomething(int i,int j); 

我還試圖以相同的方式記錄.cpp文件,有和沒有記錄.h文件。

不過,我嘗試無論怎樣,我總是得到相同的警告信息,那就是:

ClassA.cpp: warning: no uniquely matching class member found for void doSomething(int i) 
    Possible candidates: 
    virtual void doSomething(int i) at line 123 of file ClassA.h 
    virtual void doSomething(int i, int j) at line 135 of file Class.h 

    ClassA.cpp: warning: no uniquely matching class member found for void doSomething(int i,int j) 
    Possible candidates: 
    virtual void doSomething(int i) at line 123 of file ClassA.h 
    virtual void doSomething(int i, int j) at line 135 of file Class.h 

注:理想我寧願文件只爲了.cpp文件,而不是.h文件解決這個問題。

回答

1

您在使用Doxygen的\overload功能允許您

+0

我試過了,但它沒有工作,看到代碼上面「嘗試2」。 – didjek

+0

對不起。檢查您的Doxygen版本,如果仍然無法正常工作,請嘗試查看它是否適用於非虛擬功能。 – coincoin

+0

Doxygen版本1.8.7。也許它會與非虛擬功能一起工作,不幸的是,它們必須在這種情況下保持虛擬,所以我不能改變它。 – didjek