Doxygen игнорирует унаследованные функции, когда класс наследует конфиденциально, но функции снова объявлены как public - PullRequest
3 голосов
/ 22 апреля 2010

Приносим извинения за длинное название, это имеет больше смысла с примером.

Предположим, у нас есть класс A:

class A {
    public:
        void someFunction();
        void someOtherFunction();
};

И еще один класс, который наследуется от A. Однако мы повторно объявляем одну из унаследованных функций как public:

class B : private A {
    public:
        A::someFunction;
}

Когда этот код обрабатывается Doxygen, он не распознает публичное объявление someFunction в классе B. Вместо этого он показывает someFunction как частную унаследованную функцию. Это неверно.

Кто-нибудь знает, как это исправить? Приветствия

1 Ответ

0 голосов
/ 22 апреля 2010

Я не могу комментировать, поэтому я опубликую это как ответ.

Когда вы делаете частное наследование в C ++, это вариант композиции или объединения. Это похоже на отношения «машина - есть - двигатель», поэтому, возможно, у Doxygen есть проблема с этим синтаксическим способом ведения дел. Возможно, вы могли бы немного изменить это, чтобы получить хорошее публичное наследие или реальную композицию.

Если вы хотите узнать больше о частном и защищенном наследовании: http://www.parashift.com/c++-faq-lite/private-inheritance.html

Надеюсь, это поможет!

...