IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> реализация м/с с помощью ооп
сообщение
Сообщение #1


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Добрый день!
Попытаюсь исправить допущенные ранее ошибки и все же хочу разобраться с этой темой.
и так как звучит задание
Реализовать двухуровневый мультисписок на базе линейного списка с узловым представлением на языке 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 копия но не у меня... если нужно я ее создам заново , чтоб не получилось обратно "Не надо за кого-то делать полностью." , просто если мой вариант не правильный чтоб не тратить время лишнее...

пример м\с выложенный volvo
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.10.2020 12:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name