Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ассемблер _ реализация м/с с помощью ооп

Автор: amega 2.03.2010 1:16

Добрый день!
Попытаюсь исправить допущенные ранее ошибки и все же хочу разобраться с этой темой.
и так как звучит задание
Реализовать двухуровневый мультисписок на базе линейного списка с узловым представлением на языке ASSEMBLER.
Прикрепленное изображение
Процедуры обработки списка оперируют с отсортированным списком;
там еще есть пару пунктов (Интерфейс разработать в оконно-текстовом режиме.{эт типа реализация листбокса ...}) ну это думаю нада сначала с одним разобраться
как я начел создавать этот список. создал объект типа


nil = 0ffffh ;константа отсутствия ссылки

;объект елемента списка содержащий информацию об улице
struc street METHOD{
getName : dword = TPoint_getName ;Возращение данных объекта об имени
getLength : dword = Tpoint_getLength ;Возращение данных объекта об длине
setName : dword = TPoint_setName ;Установление данных объекта об имени
setLength : dword = Tpoint_setLength ;Установление данных объекта об длине
}
NameStreet db 20 dup(?) ;поле содержащий название улици
LengthStreet db 20 dup(?) ;поле содержащий протежонность улици
NextSteet dw nil ;указатель на сл. улицу
StartHome dw nil ;указатель на следующий уровень
ends street



но потом вспомнил про пример работы с ООП в Ассемблере выложенный volvo в прошлый раз
там
list STRUC GLOBAL METHOD {
construct:word = list_construct ;list constructor routine
destroy:word = list_destroy ;list destructor routine
init:word = list_init ;list initializer routine
deinit:word = list_deinit ;list deinitializer routine
virtual insert:word = list_insert ;list node insert routine
virtual append:word = list_append ;list node append routine
virtual remove:word = list_delete ;list node remove routine
virtual first:word = list_first ;list first node routine
virtual last:word = list_last ;list last node routine
}
list_head dd ? ;list head pointer
list_tail dd ? ;list tail pointer
ENDS


почитал чем отличается статический от виртуально метод, но предназначение виртуально так и не понял, понял что создается таблица виртуальных методов...

также не понял где в привидением объекте хранятся информационные поля, и зачем голова и хвост списка?
и чем мой вариант отличается от варианта при виденного?

зи: тот объект который здавал в прошлый раз после перестановки винды не сохранился, хотя есть 1 копия но не у меня... если нужно я ее создам заново , чтоб не получилось обратно "Не надо за кого-то делать полностью." , просто если мой вариант не правильный чтоб не тратить время лишнее...

http://forum.pascal.net.ru/index.php?act=Attach&type=post&id=8575