Методы init() и dispose() — теория
Одно дело, если бы в эти методы передавались параметры, а другое дело это. Разве не проще было бы весь код init поместить в конструктор, а dispose, соответственно, в деструктор?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Методы у JInternalFrame: setClosed(true); dispose();
Проблема следующая: по нажатию на кнопку создается окно JInternalFrame win = new.
Методы Dispose и Close для Stream
Здравствуйте! На сайте msdn есть пример на переопределение стандартного потока и возврат его в.
Это правда, что Close() и Clear() методы в .NET классах вызывают Dispose()?
Всем привет. Подскажите, пожалуйста: 1) Это правда, что Close() и Clear() методы в .NET классах.
Ошибка при загрузке Ubuntu 14.04 LTS: run-init: /sbin/init: Permission denied
Здравствуйте! На компьютере установлена Uuntu 14.04 LTS (64 bit). После установки cups (для.
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
О-хо-хо. Чувствую, что код древний, как окаменевшие экскременты мамонта. Дай угадаю: Turbo Vision для C++? Так этот TV и был переводом с паскалевского TV — в котором как раз и были методы Init (конструктор) и Dispose (деструктор).
Короче, забудь. С тех пор прошло уж 20 лет. Мир изменился.
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
Да это вы у разработчиков либы спрашивайте.
Я лишь могу предположить что init() и dispose() возвращают коды ошибки если такая возникла при их выполнении.
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
CheshireCat, да нет, по прежнему вижу подобное периодически. В последний раз замечал в каком-то там классе при программировании на android. Да и в directX вроде было нечто подобное, а там явно не дураки сидят. Наверное всё так, как сказала avazart.
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
Согласен, ннооо. тогда вот контрольный вопрос (в голову 🙂 ):
— что будет, если разработчик случайно (ну, где-нибудь глубоко во вложенном if()) забудет вызвать dispose() ? Останутся какие-то неосвобожденные ресурсы или что-то подобное? А если dispose() не будет вызван в результате раскрутки стека при выбросе исключения? Ась?
— что будет, если разработчик случайно же забудет вызвать init() ? Появится недоделанный объект? И как он будет существовать дальше? А что произойдет, если init() не был вызван, а к объекту применяется dispose() ?
Что такое init-statement и где оно используется?
Что такое init-statement ? Недавно прочитал в интернете про if с инициализатором. По данным этого же сайта прочитал, что у цикла for так, же на первом месте в скобках стоит init-statement . Я понимаю, что это как обычное объявление, но почему-то для этого существует отдельный термин. Я очень бы хотел разобраться в терминологии и узнать где еще используется init-statement , заранее спасибо.
Отслеживать
28.5k 12 12 золотых знаков 58 58 серебряных знаков 118 118 бронзовых знаков
задан 13 мар 2021 в 19:39
n 1 k z z z n 1 k z z z
1,481 3 3 серебряных знака 21 21 бронзовый знак
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Это не обязательно объявление. Например for (i = 42; /*. */; /*. */) разрешено, хотя i = 42 — это выражение, а не объявление.
init-statement — это термин грамматики, означающий выражение (после которого стоит ; ) или объявление.
Убедимся в этом. Открываем грамматику и видим:
init-statement: expression-statement simple-declaration
Это значит, что init-statement — это или expression-statement , или simple-declaration .
expression-statement: expressionopt ;
expression-statement — это выражение ( expression ), справа от которого стоит точка с запятой. opt (= «optional» = «опционально») значит, что выражения может и не быть, т.е. сама по себе ; — это тоже expression-statement .
simple-declaration — это обычное объявление 1 или нескольких переменных. Его описание в грамматике сложное, поэтому показывать не буду. Интересно, что определить структуру здесь тоже можно: for (struct A < /*. */ >; /*. */; /*. */) , ведь это считается объявлением (объявляющим 0 переменных).