Для пользователей, которые регистрируются. Если Вам не приходит письмо с подтверждением email, пишите на admin[at]quizful[dot]net - будем подтверждать вручную. Просим прощения за доставленные неудобства.

С уважением,
команда Quizful
Знаете ли Вы, что

Если у вас есть уникальная статья и вы хотите, чтобы она стала достоянием общественности, вы можете разместить ее на Quizful.

Топ контрибуторов
loading
loading
Лента обновлений
ссылка May 17 19:13
Комментарий от elirijndael:
Полностью согласен с valid_name.
ссылка May 17 18:47
Комментарий от Aleksandr89:
Неплохой тест. Для тех кто хочет ещё попрактиковатьс...
ссылка May 17 15:13
Комментарий от dpdpdp:
Поменяйте радиокнопки на чекбоксы.
Во втором варианте про...
ссылка May 17 11:55
Комментарий от Torredo812:
вот это подвох!!!
забываешь что х увеличился))и думае...
ссылка May 17 10:50
Комментарий от lesha1980:
Хороший вопрос. Получается, что проверяется только x в...
Статистика

Тестов: 130, вопросов: 5791. Пройдено: 126748 / 526541.

Умные указатели

Автор: evillusion  к списку      

Вопрос
Что такое "умные" указатели, чем они отличаются от обычных? Зачем они нужны? Какие реализации вам известны?
Ответ
Как правило шаблонный класс, имитирующий интерфейс обычного указателя и добавляющий некую новую функциональность, например проверку границ при доступе или очистку памяти.
Обычные указатели по сравнению с умными имеют ряд недостатков:
  1. Указатель не управляет временем жизни объекта, ответственность за удаление объекта целиком лежит на программисте. Проще говоря, указатель не «владеет» объектом.
  2. Указатели, ссылающиеся на один и тот же объект, никак не связаны между собой. Это создаёт проблему «битых» указателей – указателей, ссылающихся на освобождённые или перемещенные объекты.
  3. Нет никакой возможности проверить, указывает ли указатель на корректные данные, либо «в никуда».
  4. Указатель на единичный объект и указатель на массив объектов никак не отличаются друг от друга.
Из этих недостатков вытекает преимущество использования умных указателей.

Бывают нескольких видов, например
Простые владеющие указатели, которые при присвоении нового значения или удалении сами удаляют объект.
Еще пример - Указатели с подсчётом ссылок
Различные реализации доступны в stl и boost.

std::auto_ptr<>
std::tr1::shared_ptr<>
std::tr1::weak_ptr<>
boost::intrusive_ptr<>
boost::scoped_ptr<>
boost::scoped_array<>, boost::shared_array<>

Если Вам понравился вопрос, проголосуйте за него

Голосов: 11  loading...
void78   lazik234   molchalex   phlegmatik   ksuhak   AgentMax86   ThomasDanz   Engineer9   Kate_sp   Testlog   lestat88