В классе один RAII-ресурс зависит от другого. Как порядок объявления полей определяет корректность их уничтожения?
База Hintsage
Управление памятью
RAII, время жизни объектов, указатели и владение ресурсами.
Практика
Вопросы: Управление памятью
Класс хранит владеющий сырой указатель и использует неявно сгенерированный копирующий конструктор. Какие последствия имеет копирование такого объекта?
Разберите, почему создание std::shared_ptr из this у уже управляемого объекта опасно.
Что происходит с объектом, на который ссылается std::weak_ptr, после уничтожения последнего std::shared_ptr?
В практической библиотеке ресурс должен освобождаться функцией close, а не delete. Как связать такой ресурс с RAII в C++?
В интерфейсе C++ функция получает сырой указатель на объект, которым владеет вызывающий код. Какие ограничения это накладывает на время жизни объекта внутри функции?
Разберите, почему циклическое владение через std::shared_ptr может продлить жизнь объектов навсегда.
Как RAII освобождает ресурс, если исключение прерывает функцию до её обычного завершения?
Что означает передача std::unique_ptr в функцию по значению с точки зрения владения ресурсом?
Функция возвращает указатель на объект, которым владеет локальный RAII-объект. Разберите последствия вызова get():
#include <iostream>
#include <memory>
int* get() {
auto value = std::make_unique<int>(42);
return value.get();
}
int main() {
int* p = get();
std::cout << *p << '
';
}
Показано 41–50 из 50