forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   ООП? (http://forum.boolean.name/showthread.php?t=1180)

SubZer0 21.07.2006 15:14

ООП?
 
Вот спорим мы ужо мнооого времени... каждый наберет себе по кучке доказательств подтверждающих его теорию и пытается доказать свою правоту... но все забывают о копмпромисном решении... когда можно юзать и возможности ООП и возможности линейной программы...

так... к чему я это все веду... нашел прямое доказательство отсутствия ООП в Блитц, хотя это может быть просто глюком или я неправильно ченить юзаю...

код:
Код:

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 туда и проверяли бы потом откуда это всё, но не сделали)

ну и что это за ООП, спрошу я всех, которые отстаивали ООП теорию в блице? :)

НУБ 21.07.2006 16:58

Re: ООП?
 
Какой ещё ООП в блице, откуда там ему взяться? :)
А наличие структур - это не ООП ;)
Или я не правильно понял предмет разговора?

impersonalis 21.07.2006 17:42

Re: ООП?
 
>>:(
В хелп! http://boolean.name/showthread.php?t=10
Не знаю, что тов. SubZer0 называет "нормальный язык программирования", но точно знаю, что тот же С++ с таким подходом (пустое растранжирование адресов структур в никуда) - и того бы, что тебе B3D не вывел.
С таким же успехом.
Можно написать:
Код:

local a
for i=1 to 100
 a=rand(1,1000)
next

for i=1 to 100
 print a
next

И искренне удивиться :dontknow: тому, что на экран будет выведено одно и то же число 100 раз :''((

Я, конечно, оценил полёт мысли и слабые попытки реализовать связанный список на б3д :support: , но только делается он на всех
Цитата:

нормальных языках программирования
по-другому :teach:

Цитата:

или я неправильно ченить юзаю...
единственное что меня порадовало в этом посте ;)

Да - ну и Ньюб конечно же прав.

impersonalis 21.07.2006 17:45

Re: ООП?
 
Дальнейшее обсасывание не понятно какой пробелмы считаю бессмысленным и потенциальным разжиганием холивара, а потому - close

SubZer0 21.07.2006 18:56

Re: ООП?
 
Хммм... кроме излишних эмоций я не увидел ничего конкретного... (хотя я ничего увидеть и не ожидал... оно всегда так...

хммм смотрю наш форум начал превращаться во чтото подобное, где всех куданить посылают...

Цитата:

В хелп! http://boolean.name/showthread.php?t=10
покажи мне где там написано как правильно юзаются типы в типах... плиз...

люблю когда меня посылают туда где есть куча другого но то что мне надо не написано.

Цитата:

Какой ещё ООП в блице, откуда там ему взяться?
И я всем про это тоже... но просто люди изрядно покодив в С++, применяют свой опыт и здесь... юзая Функции - обсирая ГоТо, юзая динамичные Списки - обсирая Массивы... было чисто иронически подмечено ;)


Imp, не надо столько зла, а то как будто в самое больное место укусил... просто у меня была проблема с массивами в массивах... и если ее нельзя решить документированными средствами блица потому что он глючит, то это еще не повод злиться ;)

из этого случая можно было бы целый пост в FAQ сделать... чтоб никто больше не споткнулся... ;)

хммм... мне нравится наш ресурс... :super: не зря мы тут горбатимся...

SubZer0 28.07.2006 00:33

Re: ООП?
 
все кто попали в эту тему идем сюда, тут все описано :)


Часовой пояс GMT +4, время: 16:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot