Лучшие destructor вопросы ИТ разработчиков

  • 51 голос
  • 0 ответов
  • 0 просмотров
0 ответов

C ++ Конструктор / Деструктор наследования

РЕДАКТИРОВАТЬ: Резюме ответов В дальнейшем B является подклассом A. Это вопрос терминологии; ctors и dtors являютсяненаследуется в том смысле, что Ctor / Dtor B будетне быть заимствованным из интерфейса А. Класс имеет по крайней мере один ...

Задан 06 Jan 2013, 16:46 от Sheljohn
  • 28 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Хотя также разумно, чтобы узел был отсоединен от одного списка и связан с другим списком, без освобождения какой-либо памяти, поэтому нежелательно, чтобы одна операция удаления безоговорочно освобождала память.

ня я видел какой-то устаревший код. В деструкторе есть утверждение типа "

Задан 15 Jan 2009, 16:11 от Vinay
  • 12 голосов
  • 9 ответов
  • 0 просмотров
9 ответов

 не рассматривается в стандарте C ++ 2003, но тот факт, что он предназначен для обхода очистки, зависящей от языка, описан в документации POSIX. Этот эффект дополнительно подтверждается тем, что заявлено, и тем, что НЕ заявлено в стандарте C ++.

редлагает_Exit функция, которая выходит "немедленно", хотя этоделает может закрыть файловые дескрипторы. Unix / POSIX расширяет это поведение, предписывая закрытие всех fd без сброса (и предлагает ...

Задан 22 Jan 2011, 17:05 от Fred Foo
  • 11 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

PHP: деструктор против функции register_shutdown_function

У меня есть класс PHP, который создает изображение PNG на лету и отправляет его в браузер. Руководство по PHP говорит, что мне нужно убедиться, чтоImageDestr...

Задан 25 Oct 2008, 18:14 от Milan Babuškov
  • 14 голосов
  • 11 ответов
  • 0 просмотров
11 ответов

Вызывает ли деструктор явное уничтожение объекта полностью?

Если я вызываю деструктор явным образом (myObject. ~ Object ()), гарантирует ли это, что объект будет надлежащим образом уничтожен (вызывая все дочерние дест...

Задан 24 Jun 2009, 01:11 от Robert Gould
  • 60 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Это новые для языка. Они очень похожи на статические объекты продолжительности хранения. Но вместо того, чтобы жить той же жизнью, что и приложение, они живут до тех пор, пока они связаны с потоком выполнения.

именно объекты уничтожаются в C ++, и что это значит? Нужно ли их уничтожать вручную, так как нет сборщика мусора? Как возникают исключения? (Примечание: это означает, чтоFAQ по C ++ для переполнения ...

Задан 19 Jun 2011, 14:43 от fredoverflow
  • 23 голосов
  • 7 ответов
  • 0 просмотров
7 ответов

Таким образом, здесь происходит то, что Manager похож на использование Python с ключевым словом. Manager - это высокоуровневый класс, который получает объекты Customer от клиента, возвращает их обратно и явно уничтожает их в конце своей области действия, когда клиент использует их (что неявно с точки зрения клиента).

ужно время от времени создавать изображения с помощью rmagick в директории кеша. Чтобы потом быстро избавиться от них, не теряя их для просмотра, я хочу удалить файлы изображений, пока мой экземпляр Ruby Instance класса Image разрушен или входит ...

Задан 10 May 2011, 20:29 от Joern Akkermann
  • 8 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

разница между деструктором и сборщиком мусора

Я хочу знать, есть ли какая-либо разница между деструктором и сборщиком мусора, деструктор используется для удаления всех неиспользуемых объектов в конце срока службы приложения, так же как и сборщик мусора, сборщик мусора может вызываться или ...

Задан 26 Feb 2012, 16:56 от Abbas
  • 10 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

", но OP не определяет шаблонный деструктор.

у явно уничтожитьvector в шаблонном контексте. У меня работает следующее (GNU C ++ 4.3, 4.4 и Clang ++ 1.1): template <typename T> void destroy_vector_owner(VectorOwner<T> *obj) { obj->v.~vector(); // further cleanup by Python API functions ...

Задан 27 Jul 2011, 14:05 от Fred Foo
  • 21 голос
  • 5 ответов
  • 0 просмотров
5 ответов

Почему деструктор класса вызывается дважды?

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

Задан 13 Apr 2010, 06:49 от 5 revs, 4 users 71%
  • 7 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Отпустите объект Excel в моем деструкторе

Я пишу класс Excel, используя Microsoft.Interropt.Excel DLL. Я завершаю все функции, но у меня есть ошибка в моем деструкторе. Я хочу сохранить все изменения в моем файле, и я хочу выпустить все исходные тексты. Я хочу, чтобы все они были в моем ...

Задан 18 Jan 2010, 12:28 от Murat
  • 4 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

как скоро вызывается `__del__` после того, как счетчик ссылок падает до нуля?

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

Задан 20 Mar 2012, 23:38 от max
  • 7 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Как написать деструктор для объединяющего класса

Я пытаюсь использовать объединение (C ++), которое имеет некоторые не примитивные переменные, но я застрял, пытаясь создать деструктор для этого класса. Как ...

Задан 29 Jul 2015, 03:16 от ranisalt
  • 64 голосов
  • 7 ответов
  • 0 просмотров
7 ответов

Почему в .NET нет RAII?

Будучи в первую очередь разработчиком C ++, отсутствиеRAII (приобретение ресурсов является инициализацией) в Java и .NET меня всегда беспокоило. Тот факт, чт...

Задан 06 Oct 2008, 07:25 от Motti
  • 23 голосов
  • 12 ответов
  • 0 просмотров
12 ответов

Observable behavior and undefined behavior — What happens if I don't call a destructor?

Примечание: Я видел похожие вопросы, но ни один из ответов не является достаточно точным, поэтому я задаю это сам. Это очень придирчивый "вопрос языка юриста" Я ищу авторитетный ответ.Стандарт C ++ гласит: Программа может закончить время жизни ...

Задан 14 Jan 2014, 09:35 от Mehrdad
  • 47 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

RAII против исключений

Чем больше мы используем RAII в C ++, тем больше мы оказываемся с деструкторами, которые делают нетривиальное освобождение. Теперь освобождение (завершение, как бы вы его ни называли) может завершиться неудачей, и в этом случае ...

Задан 01 Oct 2008, 19:14 от 9 revs
  • 14 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Тем не менее, вы все равно должны быть осторожны при передаче указателей на автоматические переменные - если время жизни вектора больше, чем время жизни переменной, то в какой-то момент он будет ссылаться на мусор.

я есть объект с вектором указателей на другие объекты, что-то вроде этого:

Задан 04 Dec 2010, 19:47 от user98188
  • 9 голосов
  • 7 ответов
  • 0 просмотров
7 ответов

порядок уничтожения с использованием виртуального

Кто-нибудь может помочь, пожалуйста, каков порядок уничтожения, когда я использую виртуальные функции. Это начинается с базового класса и затем производного ...

Задан 17 Aug 2010, 21:29 от brett
  • 2 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

C ++: почему он не вызывает деструктор?

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

Задан 07 Aug 2013, 05:43 от JavaRunner
  • 15 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Это хорошая идея, чтобы закрыть член потока класса в деструкторе класса?

Каков наилучший способ закрыть поток Boost, управляемый классом C ++, когда пришло время уничтожить объект этого класса? У меня есть класс, который создает и...

Задан 27 Jun 2012, 12:49 от bythescruff
  • 238 голосов
  • 16 ответов
  • 0 просмотров
16 ответов

throwing exceptions out of a destructor

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

Задан 24 Sep 2008, 19:34 от Greg Rogers
  • 16 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Почему именно второй раз вызывает деструктор неопределенное поведение в C ++?

Как уже упоминалось вэтот ответ простой вызов деструктора во второй раз - уже неопределенное поведение 12.4 / 14 (3.8).Например:

Задан 05 May 2010, 08:26 от sharptooth
  • 2 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

C ++: почему он не вызывает деструктор?

Я использую дополнительные скобки в моем коде. Я думал, когда деструктор должен быть вызван после того, как область локальной переменной закончена, но он не работает так: class TestClass { public: TestClass() { printf( "TestClass()\n" ); ...

Задан 07 Aug 2013, 07:43 от JavaRunner
  • 11 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

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

аюсь узнать, как финализация и деструктор работает в C #, я пытался запустить код в

Задан 24 Jun 2017, 02:42 от fluter
  • 7 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Уничтожены ли местные жители до или после вычисления возвращаемого значения функции?

Я думаю о создании класса, который представляетвладение примитива синхронизации, что-то вроде этого: class CCriticalSectionLock { public: CCriticalSectionLock( CCriticalSection &cs ) : cs( cs ) { cs.Enter(); } ~CCriticalSectionLock() { ...

Задан 27 Sep 2013, 08:51 от Kevin
  • 401 голос
  • 0 ответов
  • 0 просмотров
0 ответов

Как правильно очистить объект Python?

class Package: def __init__(self): self.files = [] # ... def __del__(self): for file in self.files: os.unlink(file)__del__(self) выше не удается с исключением AttributeError. Я понимаюPython не ...

Задан 14 May 2009, 19:04 от wilhelmtell
  • 53 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Переслать объявление с unique_ptr? [Дубликат]

На этот вопрос уже есть ответ здесь: Требуется ли std :: unique_ptr <T> знать полное определение T? [/questions/6012157/is-stdunique-ptrt-required-to-know-the-full-definition-of-t] 7 ответовЯ нашел полезным использовать предварительное ...

Задан 16 Nov 2012, 10:23 от Zyx 2000
  • 18 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Ах, прости @iammilind :)

char * buf = new char[sizeof(T)]; new (buf) T; T * t = (T *)buf; //code... //here I should destruct *t but as it is argument of template and can be //instantiated via basic types as well (say int) so such code /*t->~T();*/ //is incorrect (maybe ...

Задан 18 Jul 2011, 08:37 от Mihran Hovsepyan
  • 41 голос
  • 2 ответа
  • 0 просмотров
2 ответа

вызов деструктора явно

Я понимаю, что в большинстве случаев не следует явно вызывать деструктор. Тем не менее, я видел пример из C ++ 11 Standard N3485, раздел 13.4.5 Аргументы шаблона: Явный вызов деструктора для объекта, который имеет тип, который ...

Задан 23 May 2013, 17:24 от taocp
  • 49 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Почему нам нужно использовать virtual ~ A () = default; вместо виртуального ~ A () {} в C ++ 11?

В сообщении переполнения стекаПроверка типа объекта в C ++ 11 [https://stackoverflow.com/a/17204598/260127]У меня есть комментарий: В C ++ 11 вы действительно хотите сделатьvirtual ~A() = default; В противном случае вы потеряете конструкторы ...

Задан 20 Jun 2013, 19:00 от prosseek
  • 6 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Очистка внутреннего pysqlite соединения при разрушении объекта

У меня есть объект с внутренним подключением к базе данных, который активен на протяжении всей своей жизни. В конце выполнения программы соединение должно быть зафиксировано и закрыто. До сих пор я использовал явныйclose метод, но это несколько ...

Задан 10 Jun 2009, 10:39 от Eli Bendersky
  • 14 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Почему деструктор отключает генерацию неявных методов перемещения?

Я пытался понять, что говорит правило нуля, читаяэтот блог, IMO, он говорит, что если вы объявите свой собственный деструктор, то не забудьте создать констру...

Задан 26 Nov 2015, 07:29 от Explorer_N
  • 2 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Деструктор вызывается, когда я нажимаю на вектор

У меня есть это определение класса: class FlashStream { public: explicit FlashStream(const char * url, vector<uint8> * headers, vector<uint8> * data, void * ndata, void * notifyData = NULL, uint32 lastModified = NULL); ~FlashStream(); private: ...

Задан 15 Feb 2014, 13:49 от Alex Shul
  • 26 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Деструкторы и нет, кроме

Я немного запутался с деструкторами иnoexcept, Насколько я понимаю, в C ++ 11 любой деструктор, в том числе пользовательский, неявноnoexcept(true)даже если мыthrow от него. И нужно указать явноnoexcept(false) если они хотят, чтобы так было по ...

Задан 30 Mar 2013, 17:47 от lapk
Page 1 of 4
1 2 3 4