![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.12.2008
Сообщений: 76
|
![]()
Сталкиваюсь чес говоря впервые, нужно создать 2 класса, соответственно 2 обьекта, грубо говоря свойства обьектов, методы прорисовки и т.п. должны наследоваться от еще одного класса. Соответственно классов должно быть 3: предок и 2 потомка. Все бы ничего, но как корректно написать конструктор и деструктор каждого из потомков? Выдает либо ошибку переполнения стека, либо еще херь какую-то...
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
То что выполнялось в конструкторе предка, выполнится и в конструкторе потомка. А деструктор высвобождает память, занятую объектом + то что вы напишете там. Что происходит у вас по этим событиям?
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.12.2008
Сообщений: 76
|
![]()
В потомках идет прорисовка 2-х фигур, в предке, как я уже говорил, методы рисования, контроля границ и т.п. .. Фигуры отрисовываются на пейнтбоксе, чтобы между ними переключиться, должно быть 2 радиобаттона.. Допустим, если ончеккед = истина 1-го радиобаттона, тогда вызывается конструктор 1-й фигуры, деструктор 2-й, соответственно истина 2-го - деструктор первой и конструктор 2-й.
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
А зачем каждый раз пересоздавать объект? Легче по-моему сделать какое-нибудь свойство, например Visible, которое определяет, рисуется ли фигура.
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 03.12.2008
Сообщений: 76
|
![]()
Понимаю что легче, но по заданию необходима инициализация в конструкторе класса фигуры, и уничтожение через деструктор..
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Тогда можно в предке прописать очистку от любой фигуры, а в наследниках только прорисовку, тогда по деструктору любого наследника будет очищаться поле рисования.
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 03.12.2008
Сообщений: 76
|
![]() Код:
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 03.12.2008
Сообщений: 76
|
![]()
Грубо говоря, создам еще 2 потомка, описанный в коде класс оставлю предком. Как корректно прописань конструктор, вот что понять не могу. Ну и деструктор соответственно
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Можно сделать наследование метода TFigure.Krest2, где происходит рисование, тогда обратившись к наследнику как к TFigure (TFigure(NextObject).Krest2) вы сможете вызвать переписанный метод рисования для уже следующего класса. Я так понимаю что в конструкторе вам следует просто поместить вызов процедуры рисования krest2 , предварительно описав её в классе.
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 03.12.2008
Сообщений: 76
|
![]()
это будет выглядеть как,
Код:
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание своего класса в Delphi 7 - фигуры для шахматной доски | electric | Компоненты Delphi | 18 | 24.10.2013 15:06 |
создание своего архиватора | kuzmich | Общие вопросы Delphi | 9 | 08.01.2009 06:17 |
Создание своего класса | AlexandrSid | Общие вопросы Delphi | 3 | 19.05.2008 13:28 |
Создание своего формата | AnaSha | Microsoft Office Excel | 1 | 09.01.2007 16:20 |