Вы не можете получить доступ к защищенным членам B напрямую в C, но вы можете ввести защищенный метод в A, который получает / устанавливает защищенный член в B;поскольку C получен из A, вы можете получить доступ к защищенным методам get / set в A из C, см. пример ниже.Вероятно, лучше всего подумать об общем дизайне.
class A
{
protected:
int getValueOfB(B& b) { return b.protectedValue; }
void setValueInB(B& b, int value) { b.protectedValue = value; }
};
class C
{
void doSomething()
{
B b;
setValueInB(b, 1);
}
}