Запитання з тегом «raii»



16
викидання виключень з деструктора
Більшість людей кажуть, що ніколи не викидайте виняток з деструктора - це призводить до невизначеної поведінки. Stroustrup вказує на те, що "векторний деструктор явно викликає деструктор для кожного елемента. Це означає, що якщо деструктор елемента кидає, руйнування вектора виходить з ладу ... Дійсно немає хорошого способу захисту від винятків, викинутих …


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(); file.close(); return buffer.str(); } throw std::runtime_exception("file not found"); } Чи потрібно дзвонити file.close()вручну? Чи не ifstreamслід використовувати RAII для закриття файлів?
201 c++  ifstream  raii 


29
Загальні вказівки щодо уникнення витоків пам'яті в C ++ [закрито]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

12
Чи образливо використовувати IDisposable і «використовувати» як засіб для отримання «масштабної поведінки» для безпеки винятків?
Щось, що я часто використовував у C ++, було дозволити класу Aобробляти стан входу та виходу стану для іншого класу Bчерез Aконструктор та деструктор, щоб переконатися, що якщо щось із цього діапазону кине виняток, то B матиме відомий стан, коли сфера була вимкнена. Це не є чистим RAII, наскільки це …

11
Розуміння значення терміна та поняття - RAII (Придбання ресурсів - ініціалізація)
Чи можете ви розробити розробники C ++, будь ласка, добре опишіть, що таке RAII, чому він важливий і чи може він мати якесь відношення до інших мов? Я зробити трохи знаю. Я вважаю, що це означає "Придбання ресурсів - це ініціалізація". Однак це ім'я не збігається з моїм (можливо, неправильним) …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.