Sobes.tech
Назад к вопросам
Junior — Middle
82

Какие преимущества дает использование std::make_shared при создании управляемых объектов в C++?

Компании, где спрашивали
ГК Адепт

Ответ от нейросети

sobes.tech AI

std::make_shared создает объект и соответствующий std::shared_ptr за одну операцию, что дает несколько преимуществ:

  • Эффективность памяти: выделяется одна область памяти под объект и управляющий блок, уменьшая накладные расходы на выделение памяти.
  • Безопасность: исключается риск утечки памяти при исключениях, так как объект создается и сразу оборачивается в shared_ptr.
  • Удобство: код становится короче и чище, не нужно явно писать тип дважды.

Пример:

auto ptr = std::make_shared<MyClass>(constructor_arg);

Вместо:

std::shared_ptr<MyClass> ptr(new MyClass(constructor_arg));