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

Практика на перемещение в C++

Задачи строят класс с указателем на буфер в куче и конструктор перемещения, который переносит адрес и обнуляет указатель у источника.

Сделайте класс Buffer с int* data на один элемент. Напишите конструктор перемещения, который забирает указатель и ставит у источника nullptr. Постройте второй объект перемещением из первого и выведите 1, если у источника указатель пуст.

Сделайте Store с одним int в new[]. После перемещения выведите совпадение адресов буфера у нового объекта и старого до переноса.

Передайте именованный Buffer через std::move в функцию по значению. Выведите элемент буфера в приемнике и проверьте nullptr у источника.

Добавьте в Store деструктор и запретите копирование. Переместите объект в вектор через push_back(std::move(...)) и выведите значение из элемента вектора.

Сделайте функцию, которая по значению возвращает локальный Buffer с числом 42 в буфере. Присвойте результат переменной и выведите число.

Дан класс:

class Holder { public: std::string text; Holder(std::string value) : text(value) {} };

Добавьте конструктор перемещения для std::string через стандартный перенос. Переместите длинную строку в новый объект и выведите 1, если у источника строка стала пустой.

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