是否存在命令,例如\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
};
原始示例和官方文档:http ://en.cppreference.com/w/cpp/language/override