Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpSpMU 130 of 150 menu
◀ ▶

Создание через make_unique в C++

Тот же указатель unique_ptr можно получить без отдельного new в вашем коде.

Функция make_unique из заголовка memory выделяет объект и сразу возвращает готовый unique_ptr. Так обычно и пишут: меньше шансов перепутать тип или оставить обычный указатель, который сам объект не удалит. Запишем класс User:

#include <iostream> #include <memory> #include <string> class User { public: std::string name; int age; User(std::string name, int age) : name(name), age(age) {} };

Создадим пользователя с именем и возрастом и выведем поле:

int main() { std::unique_ptr<User> owner = std::make_unique<User>("tom", 30); std::cout << owner->age << "\n"; return 0; }

Сделайте класс Parcel с полем weight и конструктором с параметром. Создайте объект через функцию make_unique, выведите вес и проверьте, что память освобождается без delete.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить