С std::unique_ptr::reset
вы можете легко вернуть свой экземпляр в новое состояние.std :: unique_ptr и reset() или метод Reset для вашего класса?
Pre-C++ 11, для достижения аналогичного поведения, я видел, что многие классы определяют метод Reset()
, который сбрасывает все его внутренние члены. Но теперь я думаю, что то же самое можно было бы сделать с помощью только конструктора и деструктора и reset
в unique_ptr
для нового экземпляра класса. Есть ли какие-то преимущества, которые мне не хватает, почему вы все равно предпочтете метод Reset()
, или мы всегда должны просто использовать unique_ptr
и reset
его новому экземпляру всякий раз, когда мы хотим «перезагрузить» наш класс?
Единственное, что я могу придумать, это то, что вы сохраняете выделение/удаление, которое иногда может быть дорогостоящим. Стоимость курса - это сложность сохранения функции Reset() и обеспечение ее актуальности при других изменениях кода.
Это он? Это вопрос сложности с производительностью?
Что делать, если вы хотите выделить свой объект в стеке? – Brian