Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Bilder. Деструктор самодельного производного класса. / 3 сообщений из 3, страница 1 из 1
19.08.2007, 22:51
    #34737247
Павел. С
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bilder. Деструктор самодельного производного класса.
Доброго времени суток.

Написал класс, наследник от TImage.
Отличается только наличием пары полей.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
class TPictogram : public TImage
{
private:
public:
        int 		ID;
        int 		SizeType;
        AnsiString	Type;
        __fastcall TPictogram (TComponent* Owner);
};

Имплементация конструктора
Код: plaintext
1.
2.
3.
4.
__fastcall TPictogram ::TPictogram (TComponent* Owner)
        : TImage(Owner)
{
}

Больше ничего по классу нет.

На форме создаю объекты этого класса динамически.
Код: plaintext
1.
2.
3.
TPictogram *CP = new TPictogram (NULL);
CP->Parent = ScrollBox1;
// etc.
Задаю нужные параметры, и кидаю в TList.
Код: plaintext
1.
List->Add(CP);
Все отлично работает, но периодически приходится заново создавать весь список таких объектов.

Перед этим, как положено, чищу память.
1) Обхожу весь вписок, вызываю деструкторы каждого объекта
2) Вызываю деструктор самого TList.

Так вот, когда заново создаю объекты своего класса-наследника от TImage, выскакивает исключение Acces Violiation при присвоении
Код: plaintext
CP->Parent = ScrollBox1;

Заметил, что если деструкторы своего класса не вызывать перед этим - все отлично работает.

В чем проблема?
Сильно не пинайте, новичек пока в ООП.
...
Рейтинг: 0 / 0
19.08.2007, 23:14
    #34737267
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bilder. Деструктор самодельного производного класса.
Павел. С ПС> Так вот, когда заново создаю объекты своего
ПС> класса-наследника от TImage, выскакивает исключение Acces
ПС> Violiation при присвоении CP->Parent = ScrollBox1;

ПС> Заметил, что если деструкторы своего класса не вызывать
ПС> перед этим - все отлично работает.

ПС> В чем проблема?отладчиком посмотри, что там происходит
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.08.2007, 23:46
    #34737315
Тынц.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bilder. Деструктор самодельного производного класса.
1) Зачем после чистки списка удалять сам List ? Ему достаточно сказать Clear, а удалить можно когда он уже не понадобится.
2) Посмотри TObjectList - он умеет сам управлять хранимыми объектами, не нужна будет рутина в виде циклов по списку с удалением каждого элемеента.
3) Покажи код удаления объектов, хранящихся в списке, есть подозрение, что ошибка где-то там :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Bilder. Деструктор самодельного производного класса. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]