Назад к вопросам
Касперский
Junior — Middle
90
Какие преимущества и недостатки использования функции make_unique в C++?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Функция make_unique в C++ создает объект в динамической памяти и возвращает умный указатель std::unique_ptr на этот объект.
Преимущества:
- Безопасное управление памятью: исключает утечки памяти, так как
unique_ptrавтоматически удалит объект. - Удобство: не нужно явно писать
newиdelete. - Исключает ошибки при исключениях: объект создается и сразу оборачивается в
unique_ptr, что предотвращает утечки при выбросе исключений.
Недостатки:
- Требует поддержки C++14 и выше (в стандарте C++11
make_uniqueотсутствует). - Немного больше накладных расходов по сравнению с сырыми указателями, но это оправдано безопасностью.
Пример использования:
#include <memory>
struct MyClass {
int value;
MyClass(int v) : value(v) {}
};
int main() {
auto ptr = std::make_unique<MyClass>(42);
// ptr автоматически освободит память при выходе из области видимости
}