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