Единственная веская причина для динамического выделения объекта состоит в том, что ему необходимо каким-то образом управлять собственным временем жизни. В противном случае код, создающий объект, отвечает за управление его временем жизни, и поскольку продолжительность автоматического хранения является допустимой стратегией управления временем жизни, его не следует намеренно отключать.
Итак, я предполагаю, что вашобъект управляет собственной жизнью;например, возможно, он поддерживает счетчик ссылок, а затем вызывает delete this
в методе release()
, когда счетчик ссылок становится равным 0. Затем ответ на вопрос «как правильно управлять временем жизни объекта», как user объекта - это "правильно использовать объект", так что объект будет освобожден, когда наступит подходящее время.
Например, можно использовать std::unique_ptr
с пользовательским средством удалениячтобы гарантировать, что объект release()
вызывается при выходе из области, предотвращая утечку любых ссылок.