Я строил систему с родительским объектом, где он создает различные дочерние объекты, и каждому дочернему объекту для работы необходим главный объект.Итак, до сих пор я создавал shared_ptr<Parent>
и Child*
, поэтому, когда создатель Родителя и всех Детей исчезает, Родитель тоже уходит.
Но я перепроектирую свой API, чтобы Child мог быть создан в стеке (раньше это была просто куча).Теперь я не уверен, что делать с родителями, так как я не понимаю, почему они не должны быть также доступны для создания в стеке - с точки зрения их действительной функции - но что происходит, если родительский объект уничтожен, а затем кто-то пытается использоватьДитя, которое они перемещали, копировали или распределяли по куче?Должен ли я просто выбросить исключение?Пропустить выполнение операции?Или просто придерживаться распределения родителей в куче?