如何使用 Doxygen 更改派生类中的函数描述

How to change function description in derived class with Doxygen?

本文关键字:函数 描述 派生 何使用 Doxygen      更新时间:2023-10-16

我有两个类:

class A {
public:
  /** Brief description
   * Grand description
   */
  virtual void func() {
    // Do something.
  }
};
class B: public A {
  // How to re-describe func() here?
};

我已经在 Doxygen 配置中打开了描述继承,这很好。但是我想将派生类中的描述更改为一些在基类中实现的函数,而无需重新实现这些函数。

当然,我可以做到以下几点:

class B: public A {
public:
  /** My new description.
   * ...
   */
  virtual void func() {
    A::func();
  }
};

但对我来说似乎很"丑陋"——编写不必要的代码只是为了添加一些注释。

还有其他解决方案吗?

如果你真的想,你也可以使用预处理器技巧:

class B: public A {
  public:
#ifdef ONLY_FOR_DOXYGEN
    /** Beautiful docs */
    virtual void func();
#endif
};

以及这些设置:

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = ONLY_FOR_DOXYGEN

这样只有doxygen才能看到额外的代码。

这可能不是你想听到的,但似乎doxygen不能为代码中没有的实体发明文档,并且相同的函数应该具有相同的文档的想法似乎是明智的。

我能想到的最好的方法是在您的A文档中放置一个部分,大意如下:

/** Brief
 * par For Class A
 *  Class A details...
 * par For Class B
 *  Class B details...
 */

这应该为两者放置相同的文档,读者可以选择相关部分吗?

不过,这意味着它们仍然必须具有相同的简短描述。