Doxygen-从外部记录的抽象类继承文档

时间:2019-02-05 09:57:34

标签: inheritance external doxygen

我正在为我的C ++类编写文档,该类继承自一个抽象类,该抽象类的文档已通过标记文件从外部提供。

我不想重写几个继承函数的文档,因为这只是抽象父函数的复制粘贴。但是,在Doxygen配置中指定了我的标记文件并启用INHERIT_DOCS之后,继承的文档仍然不存在...

我是否缺少其他参数,或者这可能是Doxygen的局限性吗?

使用Doxygen直接处理父抽象类的头文件正在按预期方式工作(文档包含在子类中)。另外,在我的子类中删除继承函数的声明将把该函数添加到“从ParentAbstractClass继承的函数”组中(但显然不再编译了)。

这是我的工作树:

<root>
    +- ParentAbstractClass/
    |    +- html/
    |    |- ParentAbstractClass.tag
    |    |- ParentAbstractClass.hpp
    +- ChildClass/
    |    +- html/
    |    |- ChildClass.hpp
    |- Doxyfile_child

ParentAbstractClass.hpp

的内容
/**
 * @brief Parent class
 */
class ParentAbstractClass{
public:
    /**
     * Inherited function
     * @param[in] arg: input argument
     */
    virtual void inheritedFunction(const int arg)=0;
};

ChildClass.hpp

的内容
#include "ParentAbstractClass.hpp"

/**
 * @brief Child class
 */
class ChildClass : public ParentAbstractClass
{
public:
    // Following function should inherit the documentation from its parent
    virtual void inheritedFunction(const int arg); 
};

还有Doxyfile_child中一些相关的选项(在我看来):

OUTPUT_DIRECTORY       = ChildClass
INHERIT_DOCS           = YES
INLINE_INHERITED_MEMB  = NO
TAGFILES               = ParentAbstractClass/ParentAbstractClass.tag=../../ParentAbstractClass/html

我正在运行Doxygen 1.8.14。

1 个答案:

答案 0 :(得分:0)

INHERIT_DOCS在一个项目中起作用。 在标记文件中,用信号表示外部项目,没有有关“父”功能的信息。添加后:

/// \copydoc ParentAbstractClass::inheritedFunction(const int arg)

作为ChildClass中函数的文档,您将获得“ Implements ParentAbstractClass”。并参考ParentAbstractClass中的函数。