Re: Порядок создания и удаления в графе
От: RedApe Беларусь  
Дата: 30.12.19 06:58
Оценка:
Здравствуйте, SuhanovSergey, Вы писали:

SS>
SS>auto c = make_unique<C>();
SS>auto b = make_unique<B>(c.get());
SS>auto a = make_unique<A>(move(b), move(c));
SS>


Т.е. типа указатель на C должен быть и у А, и у B, но удаляться он должен только после того, как удалён А?

Ну тогда, наверное, разделить стоит передачу указателей и передачу владения.

Может быть, какой-нибудь set_parent сделать, по аналогии с QObject::SetParent из Qt.

И работать не с unique_ptr, а с голыми указателями.

auto c = new C;
auto b = new B(c);
auto a = new A(b,c);
b->set_parent(a);
c->set_parent(a);


А если хочется автоматизма, то колдовать придётся в конструкторах.
--
RedApe
Отредактировано 30.12.2019 7:55 RedApe . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.