Это сложно, но возможно при определенных сценариях:
Циклические зависимости (совместное владение в обход single-ownership):
Если два unique_ptr
владеют объектами, которые ссылаются друг на друга, и ни один из них не уничтожается первым, память не будет освобождена. Это нарушает идеологию unique_ptr
как единоличного владельца. shared_ptr
для таких случаев лучше подходит с использованием weak_ptr
.
c
Исключения во время создания объекта:
Если при создании объекта, которым unique_ptr
собирается владеть, или во время выполнения конструктора этого объекта происходит исключение после выделения памяти (new T()
), но до присвоения э
Это сложно, но возможно при определенных сценариях:
Циклические зависимости (совместное владение в обход single-ownership):
Если два unique_ptr
владеют объектами, которые ссылаются друг на друга, и ни один из них не уничтожается первым, память не будет освобождена. Это нарушает идеологию unique_ptr
как единоличного владельца. shared_ptr
для таких случаев лучше подходит с использованием weak_ptr
.
c
Исключения во время создания объекта:
Если при создании объекта, которым unique_ptr
собирается владеть, или во время выполнения конструктора этого объекта происходит исключение после выделения памяти (new T()
), но до присвоения э
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.