Что некоторые общие советы должны удостовериться, что я не пропускаю память в программах C++? Как я выясняю, кто должен свободная память, которая была динамично выделена?
Я понимаю, что мы должны использовать виртуальные деструкторы в базовых классах, чтобы обеспечить правильное удаление ресурсов, потому что это гарантирует, что цепочка наследования будет соблюдаться, и все родительские деструкторы будут ...
На данный момент я нахожусь в Windows, и я работаю с WinAPI. Мне не нравится try \ catch, поэтому я использую RAII, и это конструкция, которую я обычно использую: #define r_free (N, T, F, n) \ struct N {...
Что-то, что я часто использовал назад в C ++, позволяло классу ручка государственное условие входа и выхода для другого класса B, через конструктор и деструктор, чтобы удостовериться что если что-то в том объеме...
Могли Вы разработчики C++, дайте нам хорошее описание того, каков RAII, почему важно, и могло ли это иметь какое-либо отношение к другим языкам? Я действительно знаю немного. Я верю...
Я только начинаю работать с RAII в C ++ и настраиваю небольшой тестовый пример. Либо мой код сильно сбит с толку, либо RAII не работает! (Я думаю, что это первое). Если я запускаю: #include <исключение> # ...
Большинство людей говорит, никогда не выдают исключение из деструктора - выполнение так результатов в неопределенном поведении. Stroustrup высказывает мнение, для которого "векторный деструктор явно вызывает деструктор...
Я оценивал различные реализации интеллектуального указателя (ничего себе, существует МНОГО там), и мне кажется, что большинство из них может быть категоризировано в две широких классификации: 1) Эта категория...
В C#, если я хочу детерминировано очистить неуправляемые ресурсы, я могу использовать ключевое слово "использования". Но для нескольких зависимых объектов, это заканчивается вложение далее и далее: использование (FileStream...
У меня есть несколько классов, которые не делают ничего кроме их конструкторов/деструкторов. Вот является класс в качестве примера BusyCursor {частный: Курсор oldCursor _; общественность: BusyCursor () {...
Я экстенсивно использовал интеллектуальные указатели (повышение:: shared_ptr, чтобы быть точным) в моих проектах в течение прошлых двух лет. Я понимаю и ценю их преимущества, и мне обычно нравятся они много. Но...
В коде C++ ниже, мне гарантируют это ~obj (), деструктор назовут после//выполняется Больше кода? Или компилятор, позволенный разрушать объект obj ранее, если он обнаруживает, что это...
Как должен ошибка во время освобождения ресурса быть обработанным, когда объект, представляющий ресурс, содержится в общем указателе? РЕДАКТИРОВАНИЕ 1: помещать этот вопрос в более конкретные условия: Много C-...
Чем больше мы используем RAII в C++, тем больше мы оказываемся с деструкторами, которые делают нетривиальное освобождение. Теперь, освобождение (завершение, однако Вы хотите звонить, это) может перестать работать, в этом случае...
Я - любитель C++. Я пишу некоторому Win32 код API и существуют дескрипторы и странно сложно выделенные объекты много. Таким образом, я задавался вопросом - там некоторый класс обертки, который сделал бы ресурс...
Я ранее задал этот вопрос под другим именем, но удалил его, потому что я не объяснил это очень хорошо. Скажем, у меня есть класс, который управляет файлом. Скажем, то, что этот класс рассматривает файл как...
Я могу положить, что объект уничтожается, и его деструктор называют сразу, когда он выходит из объема в C#? Я полагаю, что это должно, так как много общих методов кодирования (например, объекты транзакции) полагаются...
Действительно ли возможно реализовать RAII в чистом C? Я предполагаю, что это не возможно никаким нормальным способом, но возможно является этим возможное использование некоторой злой шутки. Перегрузка стандартной бесплатной функции прибывает в...
На практике с C++, что такое RAII, что такое интеллектуальные указатели, как они реализованы в программе и каковы преимущества использования RAII с интеллектуальными указателями?
Будучи, прежде всего, разработчиком C++ отсутствие RAII (Приобретение Ресурса Является Инициализацией) в Java и.NET всегда беспокоило меня. То, что бремя чистки перемещено от класса...
RAII = Приобретение Ресурса является Инициализацией Касательно подсчета = "GC бедного человека" Вместе, они довольно мощны (как касательно - считал 3D объект, содержащий VBO, который это бросает, освобождает, когда это - деструктор...
Я просто играл с файловой системой Java API и снизился со следующей функцией, используемой для копирования двоичных файлов. Первоисточник прибыл из сети, но я добавил пункты попытки/выгоды/наконец, чтобы быть уверенным...
Я работаю над разделом кода, который имеет много возможных мест ошибки, которые заставляют его выходить из функции рано. Библиотеки, с которыми я взаимодействую, требуют, чтобы массивы C-стиля были переданы...
Bjarne Stroustrup пишет в его Стиле C++ и Технике FAQ, шахту акцента: Поскольку C++ поддерживает альтернативу, которая почти всегда лучше: "приобретение ресурса является инициализацией" техника (...
Прошло не менее 5 лет с тех пор, как я работал с Java, и тогда, когда бы вы ни захотели выделить объект, который необходимо очистить (например, сокеты, дескрипторы БД), вы должны были не забыть добавить наконец ...
В C++ у нас есть шаблон Приобретения ресурса является инициализацией (RAII), который значительно упрощает управление ресурсами. Идея состоит в том, чтобы обеспечить некоторый переносящийся объект для любого вида ресурсов...
Я столкнулся с этой статьей, написанной Andrei Alexandrescu и Petru Marginean много лет назад, который представляет и обсуждает служебный класс под названием ScopeGuard для написания безопасного от исключения кода. Я хотел бы...
У меня есть некоторый код для обновления таблицы базы данных, которая похожа на попытку {db.execute ("НАЧИНАЮТСЯ");//много из УДАЛЯЕТ и ВСТАВЛЯЕТ db.execute ("ФИКСАЦИЯ");} выгода (DBException&) {db.execute ("...