![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Есть такой класс
Эти навороты предлагает Delphi2006 и выше. Меня интересует можно ли делать инициализацию переменных внутри классы без конструктора. Такую фишку без проблем осуществвляет Java. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Конструктор порождает экземпляр класса.
Для работы с классовыми вещами он совсем не нужен. Но, если тебе нужен синглтон, то лучше воспользоваться объектами, а не классом. Они и стандартней и компактней. (Я имею ввиду TClassHistoryID = object). Но без инициализации не обойтись. Хотя можно сделать неявную инициализацию в секции initialization. |
|||
|
||||
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
В Jave это смогли сделать а в Delphi почему нет. СТранно. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
То что в джаве сделано синглтоном, в дельфи - глобальные процедуры и функции.
Они инициализируются изначально. А в дельфи нет понятия абсолютного синглтона. Даже синглтон может быть размножен. Все классы и объекты гибридны. Реальный инициализируемый синглтон в дельфи - глобальные переменные и процедуры. Кстати, в Delphi.NET они так и компилятся - как синглтон. А гибриды нельзя проинициализировать изначально - динамика... Поэтому инициализация выполняется кодом. А код должен где-то запускаться. Либо явно вызовом метода, либо неявно автоматом при старте программы в секции инициализации. Для этого она и придумана. Да и называется соответственно. Не спорю, можно было бы продумать и более неявное решение. Но паскаль - строгий язык. Всё должно быть строго обозначено. Если выделяется память, её нужно инициализировать, а не оставлять подразумеваемый код. Такова концепция. Можно её ругать или хвалить, но так это задумано. Как плюс - не требуется ресурс - надо инициализируй, не надо - не трогай. Неявный в паскале только полиморфизм. Но это основополагающий концепт ООП. Да и он становится явным, если смотреть код класса. |
|||
|
||||
ils |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 8.9.2006 Где: Москва Репутация: нет Всего: нет |
Я когда-то нашел нечто похожее на синглтон
Добавлено через 35 секунд
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |