К вопросу об указателях
Хотелось бы пролить свет на следующий вопрос. Я напишу - а вы скажите, что не правильно. Я весьма грубо работал с терминологией, т.к. меня интересовали лишь общие детали реализации (поридираться я и сам могу)
В Blitz-е все экземпляры типов создаются всегда только с максимальной областью видимости - иными словами, глобально для всей программы. Таким образом каждая конструкция типа Код:
MyElem.MyType В свою очередь, MyElem может принять либо адрес существующего экземпляра типа: Код:
Local XElem.MyType=New MyType Код:
MyElem=New MyType Код:
x=Handle(MyElem) Код:
MyElem=Object.MyType(x) Значение в MyElem (х3 как его получить - но тем не менее это же число) насколько я понимаю - есть физический адрес в ОЗУ, в то время как Handle (дескриптор) является некоей биекцией ставящей каждому казтелю данного типа в соотвествие некторое, слабопрогнозируемео значение. |
Ответ: К вопросу об указателях
можно уточнить, что сопоставление handle и объекта происходит во время первого вызова handle, а не создания объекта, как можно было бы подумать.
|
Ответ: К вопросу об указателях
Это подтверждает мою догадку что handle это хеш-функция.
|
Ответ: К вопросу об указателях
Может там есть какой-то глобальный список и туда помещаются указатели на связаный список типа при вызове handle ?
а сам handle возращает индекс из этого глобального списка (грубо говоря указатель на узел в связаном списке) я так делал (уже не помню где) чтобы передавать параметры в скриптовый движок |
Ответ: К вопросу об указателях
Причём получается - что работать с экземпляром можно только через указатель.
|
Ответ: К вопросу об указателях
Код:
Type one Код:
Type one Хендл обьектом даётся по порядку его вызова, и сохраняются за елементом. в первом случаем вызывались по порядку, сначало все елементы первого типа, потом все елементы второго типа. Хендлы шли по порядку. во втором случае хендлы вызывались через один. зендлы идут попорядку и чтобы убедится в утверждениях, вызываем ещё раз хендлы для второго списка и получаем числа через одно) |
Ответ: К вопросу об указателях
к слову, я тему посчет handle уже поднимал, но развития она не получила:
http://forum.boolean.name/showthread.php?t=3045 |
Ответ: К вопросу об указателях
Хочу сказать что блиц странная вещь... мне кажется его придумали для завладением разумов рус программистов под видом удобного языка....
|
Ответ: К вопросу об указателях
Вот, тоже самое, только в квадратных скобочках :lol:
по идеи, по правилами переведения типов, не должно там быть этих скобочек, так что эту мутню\удобство придумали специально !! Код:
Type one |
Ответ: К вопросу об указателях
а еще при создании елемента типа резервируется 20 байт ??
Код:
; целый тип |
Ответ: К вопросу об указателях
Больше кажется что было это сделано чисто для соблюдения типов переменных в синтаксисе, по сути, почему тогда не назначают численное значение эллементу сразу - компилятор тогда будет переводить это как числа, и такая структура:
123414 = New 3434 Будет тупить? Поэтому тип данных для компилятора, назначаемый эллементу другой - чтобы лучше отличить? Иль это тупые догадки? Вообще в B3D очень примитивная работа с недо-классами. Когда берёшь BM и постигаешь Классы в нём, с их ООП, то дорога обратно, можно сказать, вами намеренно закрыта. Анти рекламка Хехе. |
Ответ: К вопросу об указателях
2IGR
вы невнимательны: www.boolean.name > Программирование игр для компьютеров > Blitz3D > Переводы > Перевод хелпа - Type Цитата:
Цитата:
2DimasSup получается простраснтво хендлов едино для разных типов объектов? Вот, IGR, юзает тайпкаст к целому числу: Код:
Int(s) |
Ответ: К вопросу об указателях
Цитата:
Цитата:
Код:
Type TInteger |
Ответ: К вопросу об указателях
ещё один интересный факт...
Код:
Type TInteger ПС2. может кто уже и сам это сделал просто хочу чтобы это осталось в этом топике, для полного раскрытия темы |
Часовой пояс GMT +4, время: 07:07. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot