![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему падает деструктор [D5, Win2k]
id_privin © (2002-09-04 12:43:00)Второй день не могу понять. Есть класс наследник TObject.
В нем несколько моих полей. конструктор. деструктор.
Создаю. Пользаю. Вызываю Free. Весь мой код деструктора срабатывает нормально, а при вызове inherited выдает Access Violation.
Поставил деструктор в try except. Вызвал много раз. Потерь памяти не заметил. Те вроде все чистит.
В чем может быть дело? Профи ответте кто знает.
KSergey (2002-09-05 07:25:00) [1]Действительно странно... Ну разве что я обычно просто пишу
destructor Destroy
begin
...
inherited;
end;
хотя это вроде одно и тоже.
А вообще Ученик © (04.09.02 19:10)прав: если такой код не вылетает - значит косяк внутри других методов, просто проявляется это лишь в деструкторе (можно проверить чему равно значение List на момент вызова деструктора, например: ссылается ли на реальный объект). А вот если и такой простой код не работает (TMyObj.Create.Free) - тогда совсем не понятно.
Ученик (2002-09-04 19:10:00) [2]TMyObj.Create.Free не вылетает ?
id_privin (2002-09-04 18:56:00) [3]TMyObj = class(TObject)
......
List : StringList;
Constructor Create(....); overload;
Constructor Create(....); overload;
....
Destructor Destroy; override;
end;
Constructor Create(...)
begin
inherited Create;
List := TStringList.Create;
end;
destructor Destroy
begin
List.Free;
Inherited Destroy;
end;
Собственно все.
To Виктор Щербаков © ну если он пустой то я не порога вылетает между строк кода. Хотя если долго жать F7 почемуто видно что после пользовательской части деструктора вызывается еще куча чего-то на asm-е. Уж не знаю что это, но падает там.
Виктор Щербаков (2002-09-04 12:48:00) [4]
> Весь мой код деструктора срабатывает нормально, а при
> вызове inherited выдает Access Violation.
Вообще интересно. У TObject - пустой деструктор.
Digitman (2002-09-04 12:48:00) [5]приведи декларацию и реализацию деструктора
gek (2002-09-04 12:45:00) [6]приведи код
Dimka Maslov (2002-09-04 12:45:00) [7]Приведи код конструктроа и деструктора для начала