![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поля классов. [XP]
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]
в делфи нет статических объектов