Как унаследовать вектор обьектов?

Столкнулся с такой проблемой:

class A
{
protected:
    vector<A>vec;
    int переменная_обьекта;   
}

class B:protected A
{
public:
    func()
    {
        vec[num].переменная_обьекта=1;
    }
}

В общем кратко описал...Ошибка E0410: не удается получить доступ к защищенному член A::переменная_обьекта. Я впервые использую вектор обьектов, поэтому не могу понять что к чему, помогите разьяснить и решить проблему. Спасибо.


Ответы (1 шт):

Автор решения: user7860670

Спецификатор доступа, указанный при наследовании применяется только при обращении к полям и методам объекта базового класса, который является подобъектом этого объекта. Вектор vec является полем подобъекта этого объекта, соответственно доступ к нему есть, однако объекты класса A, которые хранятся в векторе не являются подобъектами этого объекта, соответственно и доступа к их protected полям нет.

→ Ссылка