是否存在命令,如\deprecated
,但要標記重寫的函數?標記重寫函數
對於已覆蓋的函數,Java有一個註釋@override
。我想在C++中做同樣的事情,以便我可以看到我重寫的超類功能。文檔頁面最好還應該顯示所有繼承的類成員函數,但沒有顯式使用超類鏈接指向超類函數。
我知道有一種方法可以從超類方法複製文檔。但我不希望複製整個文檔。我只想知道,一個函數是繼承的。行爲應該與過時的選項類似,用條形標記這些舊功能。
是否存在命令,如\deprecated
,但要標記重寫的函數?標記重寫函數
對於已覆蓋的函數,Java有一個註釋@override
。我想在C++中做同樣的事情,以便我可以看到我重寫的超類功能。文檔頁面最好還應該顯示所有繼承的類成員函數,但沒有顯式使用超類鏈接指向超類函數。
我知道有一種方法可以從超類方法複製文檔。但我不希望複製整個文檔。我只想知道,一個函數是繼承的。行爲應該與過時的選項類似,用條形標記這些舊功能。
每個被重寫的函數都會自動獲得它已被重新實現的通知。例如,派生類中的重寫函數會得到「從MyBaseClass重新實現」的通知。
它還在基類的文檔中發佈通知。有提及「重試在測試」
要顯示所有功能,包括繼承的功能,您可以將INLINE_INHERITED_MEMB
設置爲YES
。然後Doxygen將每個繼承但未被覆蓋的函數的文檔複製到派生類的文檔中。
例如,使用此源時:
class TestBase
{
public:
/**
* Base class function.
*/
virtual void function();
/**
* Another function.
*/
virtual void another();
};
class Test: public TestBase
{
public:
/**
* Overridden function.
*/
virtual void function();
};
和設置INLINE_INHERITED_MEMB
到YES
將導致爲Derived
類在下列文獻中:(配Doxygen的1.7.6)
會員功能文檔
virtual void TestBase::another ( ) [virtual, inherited]
另一個功能。
virtual void Test::function ( ) [virtual]
派生。
從TestBase重新實現。
我想這就是你要找的。
由於C++ 11可以使用倍率說明符:
class A {
virtual void jump() = 0;
void talk() {}
};
class B: public A {
void jump() const override {...} // Error: B:: jump does Not overrides A:: jump (A::Jump is not const...)
void jump() override {...} // OK: B:: jump overrides A:: jump
void talk() override {...} // Error: A::talk is not virtual
};
原件實施例和官方DOC:http://en.cppreference.com/w/cpp/language/override
有一個['overload'](HTTP:// www.stack.nl/~dimitri/doxygen/commands.html#cmdoverload)命令。 – Chris
@Chris:overloading!= overriding,請參閱http://stackoverflow.com/a/429236/79455 – rve
@rve您說得對,我顯然沒有仔細閱讀這個問題。 – Chris