Понятно что дружбу наследовать нельзя и не надо. И если хочется, то значит что-то не так. Но я не вкуриваю что не так.
Есть доставшийся мне проект. В нем есть класс UI
который отвечает за интерфейс, его логику. Есть абстрактный класс Renderer
который отвечает за то чтобы это рисовать, и есть наследники AaaRenderer
и BbbRenderer
которые знают как это все рисовать через фреймворки Aaa
и Bbb
.
Для того чтобы рисовать UI
, надо иметь доступ к его кишкам. Перечислять всех наследников Renderer
в качестве друзей UI
кажется идейно неправильным… Вдруг появиться еще Ccc
.
Проложим что в Renderer
есть защищенные атрибуты internal1
и internal2
. Вот как правильно к ним организовать доступ из AaaRendrer
и BbbRender
?