Как унаследовать вектор обьектов?
Столкнулся с такой проблемой:
class A
{
protected:
vector<A>vec;
int переменная_обьекта;
}
class B:protected A
{
public:
func()
{
vec[num].переменная_обьекта=1;
}
}
В общем кратко описал...Ошибка E0410: не удается получить доступ к защищенному член A::переменная_обьекта. Я впервые использую вектор обьектов, поэтому не могу понять что к чему, помогите разьяснить и решить проблему. Спасибо.
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
Спецификатор доступа, указанный при наследовании применяется только при обращении к полям и методам объекта базового класса, который является подобъектом этого объекта. Вектор vec является полем подобъекта этого объекта, соответственно доступ к нему есть, однако объекты класса A, которые хранятся в векторе не являются подобъектами этого объекта, соответственно и доступа к их protected полям нет.