![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
Использовать везде и всегда будет неправильным. Это всего одна из стратегий владения, когда один владеет, он же и уничтожает, при этом владелец должен уничтожаться последним. auto_ptr удобен при передаче объекта как посылки, как сообщения другому объекту. Т.е. передал объект вместе с правами владения или вернул из функции с правами владения. Он не годиться в случае если время жизни объекта заранее не определено и имеются несколько ссылок на него. При использовании auto_ptr "просто так", всегда есть шанс что сделаешь прямое присвоение объектов и потеряешь экземпляр. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| lv151 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 916 Регистрация: 11.2.2008 Репутация: нет Всего: 2 |
Проблема вот в чём.
Удаляются только указатели на функции, но адреса in1, in2 нет. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
еще здесь есть неявно созданные конструктор копирования и оператор присваивания, при вызове которых произойдет утечка памяти
|
|||
|
||||
| Леопольд |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Обратная совместимость. Нельзя что-то просто убрать из STL если это уже там есть. Кстати, книжку он в каком году написал? И я не говорил что он лажа. Просто при работе с ним надо быть осторожным, а где-то он наверняка может оказаться полезным, ну а в STL контейнерах его просто нельзя использовать. Со scoped_ptr/_array не надо быть таким осторожным. shared_ptr идеально подходит для STL контейнеров... Их наверняка можно использовать криво, правда для этого уже надо будет извратиться... скорее всего Добавлено @ 17:27
Здесь не только утечка, ещё и undefined behaviour может быть из-за MyClass::MyClass(const MyClass&); и MyClass& MyClass::operator= (const MyClass&); Например, при передаче по значению как аргумент функции, память (видимо частично) будет освобождена, после смерти этой копии. Потом она будет освобождена ещё ровно столько раз, сколько копий объекта было создано. А на вопрос (27.6.2009, 21:19) так и нет ответа, к сожалению. Это сообщение отредактировал(а) Леопольд - 29.6.2009, 17:51 -------------------- вопросов больше чем ответов |
||||
|
|||||
| Леопольд |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Для того чтобы понять в чём ещё проблема, кроме не объявленного оператора присваивания и конструктора копирования по умолчанию, надо посмотреть на объявления IInterface1 и IInterface2 Добавлено @ 17:47
Я случайно придумал!!!
Не каждый додумается так непреднамеренно ошибиться. Если только с очень большого бодуна. А если не пьёт, то шансы почти нулевые Это сообщение отредактировал(а) Леопольд - 29.6.2009, 17:55 -------------------- вопросов больше чем ответов |
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
А еще можно явно вызвать деструктор статического или временного объекта Собственно для того и придумали чтобы можно было писать так
Зачем иметь 2е переменные в одной области видимости? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Не смог успокоится и придумал простейший сборщик мусора. Вроде неплохо получилось. Критика приветсвуется! Но пожалуйста, без грубости, помягче...
Создал отдельную тему http://forum.vingrad.ru/forum/act-ST/f-92/...2/unread-1.html Это сообщение отредактировал(а) Леопольд - 29.6.2009, 20:16 -------------------- вопросов больше чем ответов |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |