А зачем тебе вообще определять виртуальное наследование у класса
Чтоб классы унаследованные от HFModule могли закинуть методы в protected чтобы классы других модулей не видели его методов, которые не должны вылазить за пределы класса модуля и его плагинов
Чтоб классы унаследованные от HFModule могли закинуть методы в protected чтобы классы других модулей не видели его методов, которые не должны вылазить за пределы класса модуля и его плагинов