Студопедия — Override;
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Override;






function IsClear(const V: TVarData): Boolean; override;

procedure Copy(var Dest: TVarData;

const Source: TVarData;

const Indirect: Boolean);

Override;

procedure Cast(var Dest:

TVarData;

const Source: TVarData);

Override;

procedure CastTo(var Dest: TVarData;

const Source: TVarData;

const AVarType: TVarType);

Override;

procedure BinaryOp(var Left: TVarData;

const Right: TVarData;

const Operator: TVarOp);override;

procedure UnaryOp(var Right: TVarData;

const Operator: TVarOp);

Override;

function CompareOp(const Left: TVarData;

const Right: TVarData;

const Operator: Integer): Boolean;

Override;

procedure Streamin(var Dest: TVarData;

const Stream: TStream);

procedure StreamOut(const Source: TVarData;

const Stream: TStream);

End;

Обратите внимание: класс TComplexVariantType - интерфейсный (см. п. 9.4.1). Помимо общих для варианта методов он реализует также два метода, специфичных для интерфейса Ivarstreamabie -Streamin и StreamOut, с помощью которых значения нового интерфейса сохраняются в потоке и считываются из него.

Задача этого класса - дать единообразные команды, способные интерпретироваться объектом vcomplex как команды преобразования типа хранящихся данных, их сравнения, реализации над ними тех или иных операций, наконец, записи их в поток и чтения из него. Например, метод cast этого класса вызывается для преобразования других типов значений к комплексному типу, метод castTo - для обратного преобразования, метод BinaryOp реализует бинарную операцию, a Unarydp - унарную и т. д.

Еще раз подчеркну, что основная работа (например, по выполнению бинарных операций) реализуется методами класса TComplex-Data. Класс TCompiexVariantType перекрывает абстрактные методы своего родителя, подключая TComplexData к решению той или иной проблемы.

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

Initialization

ComplexVariantType:= TCompiexVariantType.Create;

Finalization

FreeAndNil(ComplexVariantType);

10.5.3. Создание вспомогательных методов

Несмотря на интенсивное использование классов TCompiexData и TCompiexVariantType, эти классы в конечном счете остаются скрытыми от пользователя нового варианта за счет набора вспомогательных

методов, таких как VarComplexCreate, VarIsComplex, VarAsComplex и т.

п., которые преобразуют обычные процедурные вызовы в вызовы методов и обращения к свойствам соответствующих классов.

 


  • Лекция 11. ФАЙЛЫ
    • ДОСТУП К ФАЙЛАМ
    • ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ФАЙЛАМИ
    • ТЕКСТОВЫЕ ФАЙЛЫ
    • ТИПИЗИРОВАННЫЕ ФАЙЛЫ
    • НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ
    • СРЕДСТВА WINDOWS ДЛЯ РАБОТЫ С ФАЙЛАМИ
    • ОТОБРАЖЕНИЕ ФАЙЛОВ В ПАМЯТЬ
      • Создание/открытие файла
      • Создание объекта отображения
      • Создание окна просмотра
      • Освобождение ресурсов отображения
      • Пример использования
    • ОБЪЕКТНАЯ МОДЕЛЬ РАБОТЫ С ФАЙЛАМИ

Под файлом понимается именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, диска CD-ROM).

Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Object Pascal, кроме файлов. Иными словами, нельзя создать “файл файлов”. В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Файловый тип можно задать одним из трех способов:

<имя> = File of <тип>;

<имя> = TextFile;

<имя> = File;

Здесь <имя> - имя файлового типа (правильный идентификатор);

File, of - зарезервированные слова (файл, из); TextFile - имя стандартного типа текстовых файлов; <тип> - любой тип Object Pascal, кроме файлов. Например:

Type

Product = record Name: String; Code: Word;

Cost: Comp

end;

TextSO = File of String[80];

var

Fl: File of Char;

F2: TextFile;

F3: File;

F4: TextSO;

F5: File of Product;

В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы (задаются предложением File of...);
  • текстовые файлы (определяются типом TextFile);
  • нетипизированные файлы (определяются типом File).

В наших примерах f1, F4 и F5 - типизированные файлы, F2 - текстовый файл, F3 - нетипизированный файл. Вид файла, вообще говоря, определяет способ хранения в нем информации. Однако в Object Pascal нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру хранящихся в файле данных.







Дата добавления: 2015-10-18; просмотров: 351. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Что происходит при встрече с близнецовым пламенем   Если встреча с родственной душой может произойти достаточно спокойно – то встреча с близнецовым пламенем всегда подобна вспышке...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия