Я только что закончил Koenig & Ускоренный C++ Moo и в главах 13 & 14 они излагают идею и реализацию нескольких классов Handle (простых, общих, подсчитанных ссылок).Является ли ручка тем же самым, что и умный указатель?
Классы encpasulate необработанный указатель и абстрагируют выделение/освобождение динамических объектов от кода клиента, чтобы избежать всех опасностей необработанных указателей, а также позволяя пользователю разыгрывать их для доступа к указанному объекту. По сути, это «безопасный» способ взаимодействия с необработанными ресурсами памяти.
Являются ли классы, представленные в этих главах, по существу реализацией интеллектуальных указателей? Умные указатели по-прежнему новы для меня, но из того, что я понимаю, эти классы Handle выполняют одну и ту же функцию.
- Есть ли разница между двумя или это просто другое имя для одной и той же вещи?
- Предполагая, что они эквивалентны в функции, на практике такой класс когда-либо будет написан с нуля, а не с использованием уже сделанного интеллектуального указателя?
EDIT
Я хотел бы добавить, что классы они развиваются в этих главах шаблонные классы таким образом, они не привязаны к конкретному ресурсу, как они не разработке конкретного класса FILEHANDLE, например.
Код в первом фрагменте кода here, 7.1, в значительной степени соответствует тем, что у них есть в главах, о которых я говорю.
Спасибо! Особенно ценю последние два вопроса. Я нахожусь на том этапе, когда чувствую, что я больше не новичок, но мне не хватает такого более высокого уровня, выбора дизайна/философии, который приходит с опытом. Cheers. – MTLPhil