- •Оглавление
- •Введение
- •2.Константы
- •3.Типы данных
- •3.1.Простые типы данных
- •3.1.1.Арифметические
- •3.1.2.Указатели
- •3.2.Структурированные типы данных
- •3.2.1.Массив
- •3.2.2.Строка
- •3.2.3.Структура
- •3.2.4.Объединение
- •3.2.5.Класс
- •3.2.6.Тип данных AnsiString
- •4.Операции
- •4.1.Арифметические операции и присваивание
- •4.2.Операции отношения
- •4.3.Логические операции
- •4.9.Приоритет операций
- •5.Операторы
- •5.1.Безусловные операторы break, return, cotinue
- •5.2.Оператор условия if
- •5.3.Оператор выбора switch
- •5.4.Оператор цикла for
- •5.5.Оператор цикла while
- •5.6.Оператор цикла do while
- •6.Функции
- •7.Hекоторые стандартные функции
- •7.1.Математические функции
- •7.1.1.Арифметические и алгебраические функции
- •7.1.2.Тригонометрические функции
- •7.2.Функции ввода – вывода для консольных приложений
- •7.3.Функции ввода – вывода для работы с файлами.
- •7.4.Функции для работы со строками
- •7.4.1.Функции преобразования строк и чисел
- •7.4.2.Функции обработки строк
- •8.1.Интерфейс
- •8.2.Работа с проектами
- •8.2.1.Файлы проекта
- •8.2.2.Работа с проектом приложения Windows
- •8.2.3.Работа с проектом консольного приложения
- •8.2.4.Создание и подключение модуля
- •8.2.5.Компиляция и выполнение проекта
- •8.3.Компоненты
- •8.3.1.Работа с компонентами
- •8.3.2.Описание некоторых компонентов
- •8.3.3.Некоторые свойства и события компонентов
- •Список рекомендуемой литературы
- •Приложения
- •Гуров Роман Владимирович
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*/