![]() |
|
Модераторы: LSD Страницы: (59) « Первая ... 46 47 [48] 49 50 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Romikgy, ну так я нормальный довод первый раз вижу ) |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
тогда перечитай весь топик с сааааамого начала! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Просмотрел 4 страницы всякого бреда с приплетением жабы, каких-то предложений о выносе из красной книге Питона, хотя 99% настольных приложений написано в VS или Delphi\Builder, вспомнил о старых добрых:
try except, finally, raise Причем в плюсах аналога finally вроде нет и ушел Дельфе радоваться. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
||||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
||||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
Какое имеет отношение работа с исключениями к работе конструкторов/диструкторов классов ? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
вызов деструктора при раскрутки стека.
самое прямое. Учите матчасть. При идиоме RAII автоматические деструкторы выполняют роль "чистильщиков мусора" вроде finally блоков в некоторых языках. Это сообщение отредактировал(а) Daevaorn - 20.1.2007, 14:50 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
нет слов Resource Acquisition Is Initialization - Wikipedia, the free ... а если в блоке try finally я не буду использовать классы вообще? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
т.е. при покидании области видимости? интересно
При "чисто ООП" программе(ну, где нет функций/переменных, а сплошные классы/объекты) - это действительно синонимы(вызов деструкторов при покидании области видимости и try ... finaly), правда, опасный блок не всегда последним идет в функции и можно ещё долго ждать, скажем, освобождения ресурса от блокировки или возврата чего-нить в первоначальное состояние. Когда же у нас есть и обычные переменные/функции, то автоматические деструкторы уже не помогут, скажем, разлочить файл. Я верно понял идею? |
|||
|
||||
| Daevaorn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
да. но это решается маленькой корректировкой дизайна.
не очень понимаю что такое "обычные переменные/функции". Но если рассматривать закрытие файла, то можно воспользоваться каким-либо прокси-классом, например boost::smart_handle. Поэтому и эта проблема в принципе решаема. За-то, хоть такие меры могут быть и более трудоёмки, чем просто "тупое" освобождение, но они благотворно сказываются на дизайне и вообще безопасности исключений в целом. Конечно можно найти случай, когда ничего не поможет, но это редко и всегда решаемо какими-то другими способами. Добавлено @ 16:23 соболезную
вот люди иногда спрашивают, в чем смысл таких вот споров. Да вот же он - человек посмотрел википедию и открыл для себя что же такое RAII. Это же великолепно! |
||||
|
|||||
| Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
аналогично , только в большей степени
имхо эту ссылку должен был дать ты , а не я! А во вторых , можно сделать так
а можно так
и лично я в этом RAII смысла не вижу большого (лично я!) так что знать такие тонкости , которые юзаются очень редко (при том что их можно вообще не использовать , а реализовать все по другому) имхо это не рационально.... Возможно -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||
|
|||||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
т.е. для тебя второй код лучше? Ну что же, у всех свои пристрастия Я подразумеваю, что люди, участвующие в обсуждении данной темы, достаточно квалифицированны, чтобы знать основные приемы программирования в языках, о которых они ведут речь.
Это не тонкости, а правильная и полезная идиома, которой должен владеть профессионал, пишущий на С++. Она положительно влияет на безопасность исключений, дизайн классов и кода в целом. А насчет редкого использования, это не правда. На ней постоен смысл умных указателей и т.п. Используется достаточно часто. |
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
How to catch exceptions in Visual C++
|
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
||||
|
||||
| Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
это вопрос из другой оперы имхо
имхо RAII это не основной прием !!!!
она влияет , но это не панацея! и без нее можно обойтись! так что это не основа языка плюс я очень давно программирую (конечно не профессионально на С++, и конечно используя и не используя исключения, от задачи зависит) и об этой не тонкости впервые услышал в этом топике, так что имхо делаю вывод что это тонкости и без них можно обойтись! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||
|
|||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |