![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
amega |
![]()
Сообщение
#1
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
Добрый день!
Попытаюсь исправить допущенные ранее ошибки и все же хочу разобраться с этой темой. и так как звучит задание Реализовать двухуровневый мультисписок на базе линейного списка с узловым представлением на языке 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 |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 2:33 |