Рассмотрим следующее:
Класс B
наследуется публично из класса A
. Оба они представлены в библиотеке, и я не могу их изменить.
Я хочу реализовать класс Foo
, который происходит от B
, но я хочу разрешить пользователям Foo
использовать только публичные функции A
и Foo
(не от B
). Для них не имеет значения, что Foo
наследует от B
, это в принципе деталь реализации, которую я не могу избежать.
Итак, в принципе я хочу, чтобы Foo
публично наследовался от A
, но конфиденциально от B
.
Есть ли какая-нибудь конструкция в С++, которая позволила бы мне это сделать?
Я должен добавить, что виртуальное наследование не является опцией, поскольку A
, в моем случае, происходит от QObject
(см. Можно ли использовать * виртуальное * множественное наследование, если QObject происходит от DIRECTLY?).
(NB: Для заинтересованных лиц: в моем случае A
есть QWindow
и B
is Qt3DExtras::Qt3DWindow
)