我正在为我的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。
答案 0 :(得分:0)
INHERIT_DOCS
在一个项目中起作用。
在标记文件中,用信号表示外部项目,没有有关“父”功能的信息。添加后:
/// \copydoc ParentAbstractClass::inheritedFunction(const int arg)
作为ChildClass
中函数的文档,您将获得“ Implements ParentAbstractClass”。并参考ParentAbstractClass
中的函数。