|
#1
|
|||
|
|||
TList и классы
Всем привет.
Мне нужна подсказка в организации классов. Если я имею Tobject1 и в нем должно быть много других объектов. Мне показалось логичным сделать поле TList в нем и создавать другие объекты пусть будет типа TSecondObject. Код:
type TSecondObject=class ... end; Tobject1=class ListObjects:TList; end; Но вот в чем загвоздка, мне необходимо чтобы каждый объект в списке знали все про Объект1. Сделать поле в этих вторичных объектаз с типом Tobject1 компилятор не даст. Унаследовать оба эти типы от еще одного класса. И переместить в него нужные поля из Tobject1? У меня в обще ощущение что это неадекватно делать поля TList в Объекте. Не знаю как загуглить правильную организацию Много объектов внутри другого объекта. |
#2
|
||||
|
||||
Цитата:
Не стоит путать форумы с богадельнями. © Bargest |
#3
|
||||
|
||||
Код:
Tobject1=class ListObjects:TList; end; TSecondObject=class object1: Tobject1; end; а так да, подход, скорее всего, не верный. Пишу программы за еду. __________________ |
#4
|
|||
|
|||
Цитата:
Так нельзя делать, я забыл упомянуть что в конструкторе Tobject1 создает объекты те самые и загоняет их в TList. Так он не будет понимать класс TSecondObject. |
#5
|
||||
|
||||
Цитата:
Код:
TSecondObject=class; Tobject1=class ListObjects:TList; end; TSecondObject=class object1: Tobject1; end; Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#6
|
|||
|
|||
Цитата:
|
#7
|
||||
|
||||
Цитата:
TSecondObject=class; - указывает на то, что в данном модуле описан данный класс. Его реализация в данном модуле обязательна, но может быть в любом месте ниже, после реализации и объявления других классов. А дальше уже и так все понятно. Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение: | ||
Novikov (17.01.2014)
|
#8
|
||||
|
||||
Цитата:
Но в единственном случае компилятор всё-же разрешает в объявлении ссылаться на ещё не объявленный тип - при объявлении указателя на этот тип: Код:
type PMyType = ^TMyType; TMyType = Integer; |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Novikov (17.01.2014)
|
#9
|
|||
|
|||
Благодарю за просвещение, а не подскажите решений на счет
"Объект содержит список объектов" TList нормальное решение? |
#10
|
||||
|
||||
Цитата:
Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |