Вы можете получить доступ только к защищенным членам в экземплярах вашего типа (или получить от вашего типа). Вы не можете получить доступ к защищенным членам экземпляра родительского или двоюродного типа.
В вашем случае класс Derived
может получить доступ только к члену b
экземпляра Derived
, а не к другому Base
.
Изменение конструктора для получения экземпляра Derived
также решит проблему.