Результаты поиска по запросу "raii"

4 ответа

 код библиотеки в нужное время.

о не менее 5 лет с тех пор, как я работал с Java, и тогда, когда бы вы ни захотели выделить объект, который необходимо очистить (например, сокеты, дескрипторы БД), вы должны были не забыть добавитьfinally заблокировать и вызвать метод очистки ...

7 ответов

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

кнулсяэта статья [http://www.ddj.com/cpp/184403758]написанный Андреем Александреску и Петру Марджиняном много лет назад, который представляет и обсуждает служебный класс ScopeGuard для написания безопасного кода. Я хотел бы знать, действительно ...

3 ответа

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

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

ТОП публикаций

5 ответов

 Методы для детей, вы получаете ту же гарантию детерминистического получения и распоряжения ресурсами, что и в C ++.

ался найтиRAII [https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization]в Python. Распределение ресурсов - Инициализация - это шаблон в C ++, посредством которого объект инициализируется при его создании. Если это терпит неудачу, то ...

4 ответа

Является ли совместное владение объектами признаком плохого дизайна?

Фон: При чтенииДокументы доктора Страуструпа [http://www2.research.att.com/~bs]и часто задаваемые вопросы, я замечаю некоторые сильные "мнения" и отличные советы от легендарного ученого и программиста CS. Один из них оshared_ptr в C ++ 0x. ...

11 ответов

Метод RAII использует эту функцию автоматического управления объектами для обработки объектов, созданных в куче / свободном хранилище, явно запрашивая дополнительную память, используя new / new [], которая должна быть явно уничтожена вызовом delete / delete [] , Класс автоматически управляемого объекта обернет этот другой объект, созданный в памяти heap / free-store. Следовательно, когда запускается конструктор автоматически управляемого объекта, обернутый объект создается в памяти кучи / свободного хранилища, а когда дескриптор автоматически управляемого объекта выходит из области видимости, автоматически вызывается деструктор этого автоматически управляемого объекта, в который переносится объект объект уничтожен с помощью delete. С концепциями ООП, если вы поместите такие объекты в другой класс в закрытой области видимости, у вас не будет доступа к обернутым классам-членам и методам, и это причина, по которой предназначены интеллектуальные указатели (иначе говоря, классы-дескрипторы). Эти интеллектуальные указатели представляют обернутый объект как типизированный объект для внешнего мира, позволяя вызывать любые элементы / методы, из которых состоит открытый объект памяти. Обратите внимание, что умные указатели имеют различные вкусы в зависимости от потребностей. Чтобы узнать больше об этом, вам следует обратиться к программированию на современном C ++ Андрея Александреску или повысить уровень реализации (документации) библиотеки (www.boostorg) shared_ptr.hpp. Надеюсь, это поможет вам понять RAII.

гли бы вы, разработчики C ++, дать нам хорошее описание того, что такое RAII, почему он важен и имеет ли он какое-либо отношение к другим языкам? I делать знаю немного. Я считаю, что это означает «Приобретение ресурсов - это инициализация». ...

5 ответов

Нужно ли вручную закрывать ifstream?

Нужно ли вручную звонитьclose() когда я используюstd::ifstream? Например, в коде: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); ...

29 ответов

Общие рекомендации по предотвращению утечек памяти в C ++ [закрыто]

Каковы общие советы, чтобы не допустить утечки памяти в программах на C ++? Как мне определить, кто должен освободить память, которая была динамически распределена?

12 ответов

Является ли неправомерным использование IDisposable и «использование» в качестве средства для получения «ограниченного поведения» для обеспечения безопасности исключений?

То, что я часто использовал в C ++, позволяло классуA обрабатывать состояние входа и выхода для другого классаBчерезA конструктор и деструктор, чтобы убедиться, что если что-то из этой области выдает исключение, то B будет иметь известное ...

4 ответа

Реализация RAII в C #

У меня есть форма InfoPath, которая мне нужна, чтобы условно отключить ее события OnChange. Поскольку невозможно связать обработчики событий после загрузки формы, я вынужден полагаться на глобальный счетчик, который указывает, должно ли ...