Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ООП Наследование в класах


Автор: namervasek 17.8.2009, 01:01
Всем привет.
Пищу прожку столкнулся с маленькими проблемами связанами с класами..
В инете пытался найти,  но толкого имено по моим вопроссам не нашел. Подскажите пожалуста пару моментов из создания классов.. 

Предположем есть базовый класс. В нем есть динам массив структур,структура содержит два поля(координаты точки например)
и также внем есть методы(добавит элемент в масив, удалить элемент, изменить).
Предположим мне нужно создать класс наледник от базового. Он например должен содержать в себе методы отвечающие за отрисовку точек. Для отрисовки точек этим метода нужен цвет и размер точки. Тоесть нужна струтура из четырех полей. Значит массив тоже будет другого типа и соотвествено методы ддля добывлени, удаления придется переписывать, да и от наследования никого толка получается. 
Подскажите возможно ли реализовать такое наследование что бы производный класс "добовлял" свои поля в структуру и добволял лишь методы отрисовки. 

Автор: Romikgy 17.8.2009, 09:24
возможно ,

Цитата(namervasek @  17.8.2009,  00:01 Найти цитируемый пост)
Тоесть нужна струтура из четырех полей.

зачем ? ведь ты наследуешь класс , значит весь массив с коорд. точек доступен напрямую , если ты его только в секцию private не засунул 

Автор: RockClimber 17.8.2009, 16:20
Цитата(namervasek @  17.8.2009,  01:01 Найти цитируемый пост)
В нем есть динам массив структур,структура содержит два поля(координаты точки например)

Эта структура ведь олицетворяет собой некую сущность? Причем эта же сущность имеет еще и другие атрибуты - 
Цитата(namervasek @  17.8.2009,  01:01 Найти цитируемый пост)
цвет и размер точки.

Поэтому я бы наверно сделал так, чтобы базовый класс работал сразу с "большой" структурой - которая с 4 атрибутами. Просто если базовый класс не должен рисовать точки, то пусть и не рисует. А рисовать потомки будут.
Или сделать так же, как в TStringList: этот класс может хранить ссылки на TObject и оперировать ими, но никто не мешает вместо TObject использовать его потомков и хранить ссылки на них.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)