Действительно ли дескриптор является тем же самым как интеллектуальным указателем?

Я - примерно сделанная Koenig & Moo's Accelerated C ++, и в Главах 13 и 14 они размечают идею и реализацию нескольких классов Дескриптора (простой, совместно использованный, считаемая ссылка).

Классы инкапсулируют необработанный указатель и абстрагируют выделение / освобождение динамических объектов далеко от клиентского кода для предотвращения всех опасностей необработанных указателей, также разрешающих пользователю разыменовать их для доступа к резкому для возражения. В основном 'более безопасный' способ взаимодействовать через интерфейс с необработанными ресурсами памяти.

Классы представлены в этих главах по существу реализации интеллектуальных указателей? Интеллектуальные указатели все еще довольно плохо мне знакомы, но от того, что я понимаю, эти классы Дескриптора выполняют ту же функцию.

  1. Существует ли различие между двумя или это просто другое название того же самого?
  2. Принятие они эквивалентны в функции, на практике класс, хотело бы это когда-нибудь быть записанным с нуля вместо того, чтобы использовать уже сделанное решение для интеллектуального указателя?

Править

Я должен добавить, что классы, которые они разрабатывают в этих главах, являются шаблонными классами, таким образом, они не связываются с определенным ресурсом, как в они не разрабатывают определенный класс FileHandle, например.

Код в первом фрагменте кода здесь, 7.1, в значительной степени, что они вошли в главы, к которым я обращаюсь.

5
задан Trojan 31 December 2013 в 23:00
поделиться