Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пр и Осн Алг(Спр).doc
Скачиваний:
6
Добавлен:
22.09.2019
Размер:
549.89 Кб
Скачать

3.2.4.Объединение

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

Общий вид объявления объединения

union { список_полей }имя;

где список_полей – описание полей объединения; имя – имя переменной типа объединение.

Доступ к элементам объединения осуществляется аналогично структуре.

Например:

union {char fio[30];

char adres[80];

int vozrast;

int telefon; } inform;

В переменную inform типа union можно записать значение только одного из полей списка, т.е. после присвоения значения полю inform.fio, не имеет смысла обращаться к другим полям.

3.2.5.Класс

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

Объявление класса имеет вид

class имя_класса : список_классов_родителей

{

public: // доступно всем

/* данные, методы, свойства, события*/

__published: // видны в Инспекторе Объекта и изменяемы

/*данные, свойства*/

protected: // доступно только потомкам

/*данные, методы, свойства, события*/

private: // доступно только в классе

/*данные, методы, свойства, события*/

} список_переменных ;

где имя_класса – любой допустимый идентификатор; список_классов_родителей – список классов, на основании которых построен данный класс (потомок).

В разделе public (открытый) описываются данные, свойства и методы, доступные для внешнего (вне класса) использования.

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

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

Раздел protected (защищенный) содержит объявления, доступные только внутри класса и для потомков объявляемого класса. Их можно скрыть от конечного пользователя, но они остаются доступными программистам для построения производных классов.

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

На основании классов построена библиотека стандартных компонентов Builder.

3.2.6.Тип данных AnsiString

Этот тип реализован как класс, объявленный в файле vcl\dstring.h. Это строки с нулевым символом ‘\0’ в конце. Переменные этого типа при объявлении инициализируются пустыми строками.

Для данного класса определены операции:

  • отношения ==, !=, >, <, >=, <=;

  • присваивания =;

  • склеивания +;

  • индексации [] (нумерация начинается с 1).

Например:

AnsiString str1, str2, str3;

str1 = str1 + str2; //К строке str1 добавится строка str2

str3 = str1 + str2; /* К строке str1 добавится строка str2 и результат запишется в str3*/

str1 = str1 + str2[4]; /*К строке str1 добавится 4-й символ из строки str2*/