Вот спорим мы ужо мнооого времени... каждый наберет себе по кучке доказательств подтверждающих его теорию и пытается доказать свою правоту... но все забывают о копмпромисном решении... когда можно юзать и возможности ООП и возможности линейной программы...
так... к чему я это все веду... нашел прямое доказательство отсутствия ООП в Блитц, хотя это может быть просто глюком или я неправильно ченить юзаю...
код:
Type ft
Field tf%
End Type
Type st
Field tf%
Field tf1.ft
End Type
SecondType.st=New st
For i=1 To 5
SecondType\tf1.ft=New ft
SecondType\tf1\tf%=5
Next
SecondType.st=New st
For i=1 To 5
SecondType\tf1.ft=New ft
SecondType\tf1\tf%=10
Next
For SecondType.st=Each st
For SecondType\tf1.ft=Each ft
Print SecondType\tf1\tf%
Next
Print
Print
Next
WaitKey()
идея:
создаем динамический массив динамических массивов... нормальный язык программирования переварит это дело без проблем, но в блице получается глюк
SecondType.st=New st
For i=1 To 5
SecondType\tf1.ft=New ft
SecondType\tf1\tf%=5
Next
создаем элемент в массиве SecondType и в нем создаем еще динамический массив tf1 и создаем во втором 5 элементов и пишем туда значения 5
SecondType.st=New st
For i=1 To 5
SecondType\tf1.ft=New ft
SecondType\tf1\tf%=10
Next
повторяем процедуру... только теперь пишем значение 10 (для отличия)
теперь теоретически должно быть один массив SecondType с двумя элементами, и два массива tf1 в каждом по 5 элементов, и из каждого элемента массива SecondType можно получить доступ к "вложенному" массиву tf1 и прочитать его значение...
пробуем читать:
For SecondType.st=Each st
For SecondType\tf1.ft=Each ft
Print SecondType\tf1\tf%
Next
Print
Print
Next
обычно такие весчи читаются вложенными циклами... теоретически на экране должно быть два столбца по 5 строчек в каждом и сперва 5 пятерок а потом 5 десяток
но не тут то все было, на самом деле блиц не создает вложенных типов, а вместо этого создает два параллельных типа... таким образом у нас два массива: SecondType с двумя элементами и tf1 с 10 элементами... причем из каждого элемента SecondType можно получить доступ ко всему массиву tf1 (можно было бы сделать разграничение... записали бы какоенить id туда и проверяли бы потом откуда это всё, но не сделали)
ну и что это за ООП, спрошу я всех, которые отстаивали ООП теорию в блице?