Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поля классов. [XP]


Страницы:   1 2

pathfinder ©   (2008-07-10 15:01:00) 

Добрый день!

Подскажите пожалуйста, что происходит с полями классов при завершении приложения. Будет ли уничтожен объект SomeObject?


type
 TSomeClass = class
   class var
     SomeObject: TSomeObject;
 end;


Kolan   (2008-07-10 17:11:00) [1]

> есть понятие агрегации
> есть понятие ассоциации
>
> в делфи они практически означают одно и тоже

И кроме того, :), агрегация - это разновидность ассоциации.


oxffff   (2008-07-10 17:06:00) [2]


>
> pathfinder ©   (10.07.08 15:01)  
> Добрый день!
>
> Подскажите пожалуйста, что происходит с полями классов при
> завершении приложения. Будет ли уничтожен объект SomeObject?
>


А это от тебя зависит. Поскольку это не финализируемый тип.


han_malign   (2008-07-10 16:52:00) [3]

упс, предпосылку перепутал...


han_malign   (2008-07-10 16:51:00) [4]


> Обоснуй. :)


>> при завершении приложения
...


Kolan   (2008-07-10 16:45:00) [5]

> объект владелец ассоциации не имеет права контролировать
> ее время жизни

Обоснуй. :)


Игорь Шевченко   (2008-07-10 16:36:00) [6]


> Подскажите пожалуйста, что происходит с полями классов при
> завершении приложения. Будет ли уничтожен объект SomeObject?
>


Будет обязательно.


Dennis I. Komarov   (2008-07-10 15:53:00) [7]

> [18] tesseract ©   (10.07.08 15:24)

Согласен. Уговорил :)


tesseract   (2008-07-10 15:24:00) [8]


> Да, потому что при завершении работы приложения вся выделенная
> ему память все равно освобождается


Кроме глобальной, приложений лок с глоюальной не снимет - утечка будет иметь место, куча да - освободиться, но все обрывки COM и IStream остануться. Про win98 умалчиваем - даже куча останеться, где-то висеть.


DrPass   (2008-07-10 15:18:00) [9]


> Подскажите пожалуйста, что происходит с полями классов при
> завершении приложения. Будет ли уничтожен объект SomeObject?
>

И да, и нет. Да, потому что при завершении работы приложения вся выделенная ему память все равно освобождается, и SomeObject уйдет в небытие. Нет - в том смысле, что SomeObject не будет разрушен корректно. Т.е. не будет вызван деструктор, и если он при уничтожении должен выполнять какие-то действия, эти действия выполнены не будут


DrPass   (2008-07-10 15:18:00) [10]


> Подскажите пожалуйста, что происходит с полями классов при
> завершении приложения. Будет ли уничтожен объект SomeObject?
>

И да, и нет. Да, потому что при завершении работы приложения вся выделенная ему память все равно освобождается, и SomeObject уйдет в небытие. Нет - в том смысле, что SomeObject не будет разрушен корректно. Т.е. не будет вызван деструктор, и если он при уничтожении должен выполнять какие-то действия, эти действия выполнены не будут


pathfinder   (2008-07-10 15:15:00) [11]

Ну что же. Всем спасибо:)


Palladin   (2008-07-10 15:13:00) [12]

есть понятие агрегации
есть понятие ассоциации

в делфи они практически означают одно и тоже, за исключением одного момента: объект владелец ассоциации не имеет права контролировать ее время жизни


> В том, что если бы SomeObject был статическим объектом,
> то он и создавался бы сам?

В том что SomeObject никак не мог бы им стать, соответственно этот вопрос никакого смысла не несет


pathfinder   (2008-07-10 15:12:00) [13]


> не сам а компилятором.


Ну да, это я и хотел сказать:)


Поросенок Винни-Пух   (2008-07-10 15:11:00) [14]

В том, что если бы SomeObject был статическим объектом, то он и создавался бы сам?

не сам а компилятором.


pathfinder   (2008-07-10 15:10:00) [15]

Почему-то у меня поля класса ассоциировались со статическими объектами.

А в чем разница? В том, что если бы SomeObject был статическим объектом, то он и создавался бы сам?


Поросенок Винни-Пух   (2008-07-10 15:09:00) [16]

Конечно надо уничтожать вручную иначе - чистой воды утечка.

Особенно если это просто ссылка на "компаньона".

TDataSource.Dataset

Убивая датасорс непременно надо пришить и его датасет?


Dennis I. Komarov   (2008-07-10 15:09:00) [17]

> [8] Kolan ©   (10.07.08 15:08)

Даже если пипец приложению?


Kolan   (2008-07-10 15:08:00) [18]

Конечно надо уничтожать вручную иначе - чистой воды утечка.


Поросенок Винни-Пух   (2008-07-10 15:07:00) [19]

Т.е. вы точно знаете, что delphi не уничтожает статические объекты?

Конечно нет. ПРосто потому что их там нет


Palladin   (2008-07-10 15:06:00) [20]


> pathfinder ©   (10.07.08 15:06) [5]

в делфи нет статических объектов


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо