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

Практика на умные указатели в C++

Задачи создают объекты через std::unique_ptr и std::shared_ptr, передают владение или делят один ресурс между несколькими владельцами.

Сделайте класс FileJob с полем path. Создайте std::unique_ptr<FileJob> для пути "data.txt" и выведите path.

Сделайте std::unique_ptr<int> с числом 7. Передайте владение в другую unique_ptr через std::move. Выведите значение и проверьте, что первый указатель пуст.

Сделайте класс Counter с полем value. Храните его в std::shared_ptr<Counter>, скопируйте умный указатель во вторую переменную, измените value через вторую ссылку и выведите use_count и значение через первую.

Сделайте функцию, которая принимает std::shared_ptr<Widget> и увеличивает поле clicks. Создайте один Widget в shared_ptr, вызовите функцию два раза с копией указателя и выведите clicks.

Сделайте std::vector<std::unique_ptr<Item>> для класса Item с полем sku. Добавьте три элемента через make_unique. Выведите sku второго элемента.

Даны типы:

class Node { public: int id; Node(int value) : id(value) {} };

Создайте shared_ptr<Node> с 1, положите его в std::vector<shared_ptr<Node>> вместе с еще одной копией того же указателя. Выведите сумму id и use_count для первого узла.

Сделайте класс Owner с полем std::unique_ptr<Resource>, где Resource хранит label. Создайте Owner с ресурсом "db" и выведите метку через метод label у Owner.

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