c++ - 标记覆盖的函数

标签 c++ overriding doxygen

是否存在一个命令,如 \deprecated,但用于标记被覆盖的函数?

Java 有一个注解 @override 用于你重写的函数。我想在 C++ 中做同样的事情,这样我就可以看到我重写的父类(super class)函数。充其量,文档页面还应该显示所有类成员函数,这些函数是继承的,但不会被父类(super class)函数的超链接显式覆盖。

我知道有一种方法可以从父类(super class)方法中复制文档。但我不想复制整个文档。我只想知道,一个函数是继承的。该行为应类似于已弃用的选项,以用横线标记那些旧功能。

最佳答案

每个被覆盖的函数都会自动收到一个通知,它已被重新实现。例如,派生类中的重写函数会收到通知“从 MyBaseClass 重新实现”。

它还在基类的文档中放了一条通知。提到“在测试中重新实现”

要显示所有函数,包括继承的函数,您可以设置INLINE_INHERITED_MEMBYES。然后 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)

Member Function Documentation

virtual void TestBase::another ( ) [virtual, inherited]
Another function.

virtual void Test::function ( ) [virtual]
Derived.
Reimplemented from TestBase.

我认为这就是您要找的。

关于c++ - 标记覆盖的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562511/

相关文章:

c++ - 如何正确格式化类实例引用

c++ - 将 vector < vector <Point>> x 变换为 vector <Point> y

c++ - 使用 find 方法查找对象的属性 == 某个值

c++ - 移动背景减法 (OpenCV)

c++ - 有效地杀死一个windows进程

objective-c - 在何处使用 Doxygen 记录代码

python - 允许自定义 python 类在两个方向上添加

java - 在覆盖方法中检查 'throws' 的异常

c++ - Clang 和派生模板类中的 'override' 关键字

c - 如何在结构之外记录结构数据成员