Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
15<br />
Данные в определении класса объявляются со своими типами и име<strong>на</strong>ми,<br />
а у член-функций указываются, кроме того, типы данных параметров. В<br />
рассматриваемом примере присутствуют указатели <strong>на</strong> данные Edit1, Edit2,<br />
Button1, Label1 классов TEdit, TButton, TLabel. Модификатор быстрого вызова<br />
_ _fastcall организует передачу аргументов методам VCL не через стек, а<br />
через процессорные регистры, если это не вещественные числа, не структуры<br />
данных и не функции. Лексема void является указателем <strong>на</strong> то, что функция<br />
Button1Click не возвращает никаких з<strong>на</strong>чений по окончании работы.<br />
Бестиповая функция TForm1, имя которой совпадает с именем класса,<br />
<strong>на</strong>зывается конструктором (constructor). Конструкторы (а их может быть несколько)<br />
пред<strong>на</strong>з<strong>на</strong>чены для автоматической инициализации данных в ходе<br />
порождения объектов.<br />
Класс формы является производным классом, и в его заголовке через<br />
двоеточие указано имя базового класса TForm с открытым типом доступа<br />
public. Производный класс <strong>на</strong>следует все члены базового класса, за исключением<br />
конструкторов и деструктора. В производном классе у<strong>на</strong>следованные<br />
члены могут иногда изменяться, а также добавляются новые члены.<br />
Одновременно с объявлением класса в файле заголовка задается одноимен<strong>на</strong>я<br />
с формой глобаль<strong>на</strong>я перемен<strong>на</strong>я, позволяющая обращаться к ней из<br />
любого файла проекта, <strong>на</strong>пример:<br />
extern PACKAGE TForm1 *Form1;<br />
Лексема PACKAGE является именем макроса, в котором содержится код экспорта<br />
из библиотеки пакетов BPL – Borland Package Library.<br />
Члены классов, объявленные в файле заголовка, определяются в файле<br />
кода формы в форматах:<br />
[Модификатор] [Тип] имяКласса :: имяЧлен-данного [= З<strong>на</strong>чение];<br />
[Модификатор][Тип] имяКласса :: имяЧлен-функции (списокПараметров)<br />
телоЧлен-функции<br />
В частности, каждой форме в ее файле кода автоматически прописывается<br />
пустой конструктор, получающий при вызове единственный параметр Owner,<br />
указывающий объекта-владельца, создающего форму. Например:<br />
TForm1 *Form1;<br />
_ _fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner) {}