Разбираем, почему «голый» указатель
T
* хранит только адрес и не выражает владение, чем помогает подход
RAII, как
std::unique_ptr<T> гарантирует единственного владельца и автоматическое освобождение ресурса в деструкторе, и почему создавать объекты стоит через
std::make_unique, а не через
new. Также обсудим пустое состояние (
nullptr), проверки
if (
p), практический пример с опциональными деталями задачи и типичные ошибки (ручной
delete, разыменование пустого указателя).