Borland Pascal. Руководство пользователя
6cac1dc9

Объекты, экспортируемые модулями


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

Примечание: Экспортируемый - означает "определенный в интерфейсной части модуля".

Модули могут иметь свои собственные приватные (частные) оп- ределения типов объектов внутри выполняемой секции, и эти типы подвержены тем же ограничениям, как и всякие другие типы, опреде- ленные в секции реализации. Типы объектов, определенные в интер- фейсной части модуля, могут иметь дочерние типы объектов, опреде- ленные в секции реализации модуля. В том случае, когда модуль B использует модуль A, модуль B также может определять дочерние ти- пы любого типа объекта, экспортируемого модулем A.

Описанные ранее типы объектов и методы можно определить в модуле, как показано в программе WORKERS.PAS на дистрибутивном диске. Чтобы использовать типы объектов и методы, определенные в модуле Workers, вы можете просто использовать этот модуль в своей программе и описать экземпляр типа THourly в секции переменных программы:

program HourPrt;

uses WinCrt, Workers;

var AnHourly: THourly; . . .

Для создания и вывода фамилии pабочего-почасовика, его долж- ности и pазмеpа выплаты, пpедставленной пеpеменной AnHourly, вы просто вызываете методы AnHourly, используя следующий синтаксис:

AnHourlye.Init('Sara Adams', 'Account manager', 1400); { записывает в экземпляp THourly } { данные для Саpы Адамс: фамилию, } { должность и pазмеp выплаты. } AnHourly.Show;

Примечание: Объектами могут быть также типизированные константы.

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

with AnHourly do begin Init('Sara Adams', 'Account manager', 1400); Show; end;

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



Содержание раздела