adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Турбо Ассемблер 3.0/tasm/#1-2
Автор ""
Размер 469003 Байт
Страница 19 из 51
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

     рождающего объекта структуры данных и другие  характеристики, что
     позволяет сэкономить усилия и обеспечить прозрачное использование
     для многих целей больших фрагментов кода.

          Если вы не имеете большого опыта работы с Турбо Ассемблером,
     то можете  пропустить  данную главу,  но вернитесь к ней позднее,
     после того,  как прочтете другие главы руководства.  Мы  включили
     здесь эту главу, чтобы вы имели представление о данных средствах,
     на объектно-ориентированное представление в Турбо  Ассемблере  на
     самом деле  представляет  собой достаточно продвинутую тему.  Она
     будет иметь больший смысл, когда вы изучите остальные главы руко-
     водства.

                              Терминология
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Для различных  единиц объектно-ориентированного программиро-
     вания в C++ и Паскале  используются  различные  термины.  В  этом
     смысле Турбо Ассемблер более близок к Паскалю, хотя не все терми-
     ны здесь совпадают.  Различия между языками описываются в следую-
     щей таблице:

          Терминология объектно-ориентированного программирования
                                                           Таблица 4.1
     ЪДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДї
     іТурбо Ассемблер        і   Borland C++        і Турбо Паскаль  і
     ГДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДґ
     іметод                  і   функция-элемент    і метод          і
     і                       і                      і                і
     іпроцедура метода       і                      і                і
     і                       і                      і                і
     іобъект                 і   класс              і объект         і
     і                       і                      і                і
     ібазовый объект         і   базовый класс      і базовый объект і
     і                       і                      і                і
     іпорождающий объект     і   порождающий класс  і порождающий    і

     Турбо Ассемблер 3.0/tasm/#1-2                              = 74 =

     і                       і                      і  объект        і
     і                       і                      і                і
     іпорожденный объект     і   порожденный класс  і порожденный    і
     і                       і                      і  объект        і
     і                       і                      і                і
     іполе порожденного      і   элемент данных     і поле           і
     і объекта               і                      і                і
     АДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДЩ

                Примечание: Эти термины подробнее поясняются  в данной
           главе ниже.

           Для чего в Турбо Ассемблере используются объекты?
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Большинство рассматривают  язык  Турбо Ассемблера,  как язык
     низкого уровня. Однако Турбо Ассемблер обеспечивает многие средс-
     тва языка  высокого  уровня  (такие как абстрактные типы данных и
     простой интерфейс с другими языками).  Дополнение Ассемблера объ-
     ектно-ориентированными структурами  данных  дает  ему возможность
     создавать объектно-ориентированные программы так  же  легко,  как
     это делается на языках высокого уровня,  с сохранением скорости и
     гибкости языка Ассемблера.

                          Что такое объект?
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Объект состоит  из структуры данных и связанных с ней проце-
     дур (которые называются методами),  которые работают  с  данными,
     записанными в экземплярах структуры данных.

          Объект может  наследовать характеристики порождающего объек-
     та. Это означает,  что структура данных нового  объекта  включает
     структуру данных порождающего объекта, а также новые данные. Кро-
     ме того,  новый объект может вызывать все процедуры  порождающего
     объекта, а также те процедуры методов, которые в нем описываются.

                Примечание: Для объектно-ориентированного программиро-
           вания  мы  настоятельно  рекомендуем вам использовать режим
           Ideal Турбо Ассемблера,  поскольку область действия иденти-
           фикаторов в MASM является глобальной,  и вы не сможете раз-
           личить различные расположения показанных методов.

          Объект, не имеющий наследования,  называется базовым  объек-
     том.  Объект, наследующий характеристики других объектов, называ-
     ется порожденным или производным объектом.

          В Турбо Ассемблере определено несколько идентификаторов, ко-
     торые вы можете использовать при описании объектов.  Они перечис-
     лены в следующей таблице:


     Турбо Ассемблер 3.0/tasm/#1-2                              = 75 =

          Идентификаторы, определенные для объектов        Таблица 4.2
     ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
     і Идентификатор              і Значение                         і
     ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДі





і @Object і Текстовая макрокоманда, содержа- і і і щая имя текущего объекта (пос- і і і леднего описанного объекта). і і і і і <имя_объекта> і Тип данных STRUC, описывающий і і і структуру данных объекта. і і і і і @Table_<имя_объекта> і Тип данных TABLE, содержащий і і і таблицу методов объекта. Это не і і і то же самое, что экземпляр таб- і і і лицы виртуальных методов. і і і і і @TableAddr_<имя_объекта> і Метка, описывающая адрес экземп- і і і ляра таблицы виртуальных мето- і і і дов объекта (если она есть). і АДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Пример объекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В качестве примера использования объектов рассмотрим прог- рамму, работающую со связанными списками. Мы будем рассматривать связанных список как объект, содержащий связанный список данных и операций (методов), которые вы можете с ними выполнять. Связанный список данных состоит из указателей на начало ("голову") и конец ("хвост") связанного списка (в нашем примере из-за его гибкости используется двунаправленный связанный спи- сок). Каждый элемент связанного списка представляет собой реали- зацию отдельного объекта. Возможности, необходимые для использования связанного спис- ка, предоставляют следующие операции: - создание связанного списка (выделение для него памяти); - уничтожение связанного списка (освобождение используемой памяти); - инициализация связанного списка; - деинициализация связанного списка; - вставка элемента в середину списка перед существующим эле- ментом; - присоединение элемента к концу связанного списка; - удаление элемента из связанного списка; - возвращение первого элемента связанного списка; Турбо Ассемблер 3.0/tasm/#1-2 = 76 = - возвращение последнего элемента связанного списка. Имейте в виду, что создание и инициализация, а также уничто- жение и деинициализация методов - это не синонимы. При создании и уничтожении методы create и destroy выделяют и освобождают память для объекта (связанного списка), а методы инициализации и деини- циализации initialize и deinitialize только инициализируют и деи- нициализируют ранее выделенные экземпляры объекта. Вы можете видеть, как объект связанного списка наследуется объектами стека или очереди, поскольку очередь и стек можно реа- лизовать как связанный список с ограниченным числом операций. Например, можно реализовать очередь в виде связанного списка, в котором элементы могут добавляться к концу и извлекаться из нача- ла. Если вы таким образом реализуете очередь, то нужно запретить наследуемые методы связанного списка, которые для очереди недо- пустимы (например, вставку в середину списка). Описание объектов ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание объекта состоит из описаний структур данных объекта и описаний процедур метода, которые вы можете вызывать для данно- го объекта. Описание объекта не означает создание экземпляра объ- екта. Как это сделать, вы узнаете позднее. Описание базового объекта ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Когда вы описываете объект, Турбо Ассемблер создает структу- ру STRUC и описывает данные для этого объекта, и таблицу TABLE, которая описывает методы объекта. Описания данных объекта предс- тавляет собой структуру с тем же именем, что и объект. Описания методов объектов записывается в типе данных TABLE с именем @Table _<имя_объекта>. Примечание: Более подробно о применении к описанию объ- ектов директивы STRUC рассказывается в Главе 8. Например, для объекта списка два типа данных описываются следующим образом: list STRUC описывает следующие элементы: list_head указатель dword на начало списка list_tail указатель dword на конец списка @Table_list TABLE описывает следующие методы: construct указатель dword на процедуру list_construct destroy указатель dword на процедуру Турбо Ассемблер 3.0/tasm/#1-2 = 77 = list_destroy


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.