Предположим есть некие классы —
class A
{};
class B
{
private:
vector<A> vec_;
};
class C
{
private:
vector<B> vec_;
};
Вопрос в том как правильно организовать итнерфейс например для модификации объекта класса A через класс С, не раскрывая доступ к private членам.
Выставление не константного итератора в классе C, делать бы не хотелось, а выставление константного приведет к тому, что весь интерфейс класса A и B придется продублировать в классе С.