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

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

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

 
 Ответить  Открыть новую тему 
> реализация м/с с помощью ооп
amega
сообщение 1.03.2010 21:16
Сообщение #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

 

- Текстовая версия 28.07.2025 2:33
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"