Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Объектно-ориентированное программирование - Программирование от RIN.RU
Объектно-ориентированное программирование



Создание экземпляра объекта


Чтобы создать экземпляр объекта, вы можете вызвать метод конструктора объекта (который выделяет память для экземпляра объекта), или распределить экземпляр объекта в предопределенном сегменте данных.


Вы можете создать экземпляр объекта точно также, как вы создаете экземпляр структуры. Рассмотрите, например, следующие экземпляры объектов:


foolist list () ; экземпляр списка
fooqueue label queue
queue () ; экземпляр очереди
queue (list_head=mynode,list_tail=mynode)
; экземпляр очереди


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


Программирование с объектами


Хорошо хранить процедуры метода отдельно от описаний метода (в отдельном файле) и отдельно от кода, использующего данный объект. Мы рекомендуем помещать процедуры метода в файл с именем, совпадающим с именем объекта, и расширением .ASM. Например, процедуры метода для объекта связанного списка можно поместить в файл LIST.ASM. Файл процедур метода должен включать (с помощью INCLUDE) описания метода из файла .ASO.


В конце данной главы показан пример процедур метода объекта списка. Чтобы показать общую структуру файла, приведем фрагмент файла LIST.ASM (его можно найти в примерах на дистрибутивном диске):


0


В общем случае следует использовать следующую форму объектно-ориентированного программирования в Турбо Ассемблере


ФайлСодержимое
<объект>.ASO INCLUDE <порождающий_объект>.ASO (если он есть), GLOBAL описание объекта и директива GLOBAL для каждой процедуры методов.
<объект>.ASMINCLUDE <объект>.ASO содержит директиву TBLINST INCLUDE <объект>.ASO содержит директиву TBLINST c TBLINIT.



Заметим, что вы можете использовать директивы TBLINST и TBLINIT, даже если в объекте нет виртуальных методов. В этом случае никаких действий не выполняется. Таким образом, мы рекомендуем вам использовать директивы TBLINST и TBLINIT независимо от наличия в объекте виртуальных методов. Поместите директиву TBLINST в соответствующий сегмент данных, а TBLINIT - в метод инициализации объекта (который должен быть статическим). Вы должны вызывать этот метод перед использованием всех других методов объекта.


Пример из области программирования


На диске с примерами содержится исчерпывающий пример объектно-ориентированного программирования, в котором используются описанные ранее объекты list и queue, а также объект stack. Описанный объект node является базовым объектом для всех данных пользователя, записанных в связанном списке, очереди или стеке. Список соответствующих файлов примера приведен в следующей таблице:


Файлы примера объектно-ориентированного программирования
ФайлСодержимое
NODE.ASOОписывает объект node и методы.
NODE.ASMСодержит методы объекта node и экземпляр таблицы виртуальных методов.
LIST.ASOОписывает объект list и его методы.
LIST.ASMСодержит методы объекта list и экземпляр таблицы виртуальных методов.
QUEUE.ASOОписывает объект queue и его методы.
QUEUE.ASMСодержит методы объекта queue и экземпляр таблицы виртуальных методов.
STACK.ASOОписывает объект stack и его методы.
STACK.ASM Содержит методы объекта stack и экземпляр таблицы виртуальных методов.
OOP.ASMСодержит пример использования этих объектов.

<<<  Назад
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Начало работы на Турбо Ассемблере

Использование директив и параметров

Общие принципы программирования

Использование выражений и значений идентификаторов

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Определение типов данных

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь