Re: общий ресурс
От: Stanislav V. Zudin Россия  
Дата: 19.12.19 07:31
Оценка:
Здравствуйте, niXman, Вы писали:

X>есть класс, мембером которого является vector<type>.


X>этот класс может создавать обекты своего же типа, которые содержат только часть данных из "родительского":


X>проблема тут в том, что данные в "родительском" классе иммутабельны, но дети все равно вынуждены копировать их. от этого и хочется избавиться.


X>одно не нравится в этом варианте: нужны дополнительные мемберы, которые будут использоваться только детьми — значит код класса придется дополнить кучей условий проверки, дите или родитель %)


X>как быть?


В зависимости от задачи. Может оформить аналогично std::string + std::string_view.
У себя в проекте я бы разделил твой класс на собственно "хранилище", в котором где лежит vector<type> и "итератор", тонкая прослойка, в которой лежит указатель на хранилище и индекс нужного элемента во внутреннем массиве. В неё же можно накидать доп. мемберы.
_____________________
С уважением,
Stanislav V. Zudin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.