我有两个班级:
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();
}
};
但对我来说这似乎是“丑陋的” - 编写不必要的代码只是为了添加一些评论。
还有其他解决方案吗?
答案 0 :(得分:2)
如果你真的想要,你也可以使用预处理技巧:
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才会看到额外的代码。
答案 1 :(得分:1)
这可能不是您想听到的,但似乎doxygen无法为不在代码中的实体创建文档,并且相同功能应该具有相同文档的想法似乎是明智的。
我能想到的最好的方法是在A
文档中添加一个部分来实现:
/** Brief
* \par For Class A
* Class A details...
* \par For Class B
* Class B details...
*/
这应该为两者提供相同的文档,读者可以选择相关部分吗?
这意味着他们仍然必须有相同的简要描述。