- •Преобразование типов указателей
- •Операторы определения адреса и обращения по адресу
- •Указатели на константы и константные указатели
- •Арифметические действия с указателями
- •Одномерные и многомерные массивы.
- •Строки символов. Основные функции для работы со строками.
- •Перечисление.
- •Структура.
- •Объединения.
- •Битовые поля.
- •Тип данных bool. Тип данных wchar_t.
- •Способы передачи параметров в подпрограммы.
- •Операторы распределения памяти.
- •Объявление typedef.
- •Оператор sizeof.
- •Передача аргументов по умолчанию.
- •Встроенные функции.
- •Определение пространства имён.
- •Оператор разрешения области видимости.
- •Объявление «using». Директива «using». Псевдонимы.
- •Механизм обработки исключений.
- •Вложенные исключения.
- •Определение класса.
- •Указатель this. Спецификаторы доступа к членам класса.
- •«Друзья» класса.
- •Конструктор класса. Список инициализации.
- •Конструктор по умолчанию.
- •Конструктор копирования.
- •Явные конструкторы.
- •Деструкторы.
- •Встроенные функции–члены класса. Статические члены класса.
- •Функции-члены класса с квалификаторами const и volatile.
- •Вложенные классы. Локальные классы.
- •Общие правила перегрузки операторов.
- •Перегрузка оператора присваивания.
- •Оператор индексирования [].
- •Перегрузка бинарных операторов.
- •Составные операторы присваивания.
- •Оператор вызова функции.
- •Операторы преобразования типов (конверторы).
- •Структура данных – стек.
- •Структура данных – очередь.
- •Деревья.
- •Наследование
- •Доступ к членам наследуемого класса
- •Конструкторы, деструкторы и наследование
- •Наследование и присваивание.
- •Виртуальные функции.
- •Полиморфизм и позднее связывание.
- •Передача аргументов по умолчанию в виртуальные функции.
- •Виртуальные деструкторы.
- •Абстрактные классы.
- •Множественное наследование.
- •Виртуальное наследование.
Перечисление.
Перечислением называется тип данных, который включает набор целочисленных констант. Элементы перечисления называются перечисляемыми константами:
enum [имя_перечисления] {список значений};
Список значений перечисляет именованные целочисленные константы, принадлежащие перечислению.
Например:
enum color {r, g, b};
При такой записи r = 0, g = 1, b = 2. Пользователь может задать перечисление с инициализированными константами:
enum color {r = 2, g = 4, b = 6};
Используемые константы могут быть присвоены переменной такого же типа. Например, можно объявить переменную color d; затем этой переменной присваивают значение констант: d = r. Не запрещается присваивание этой переменной и непосредственного значения: d = 2.
Могут быть присвоены только те значения, которые имеют константы в списке. Попытка присваивания других значений приведёт к ошибке.
Например:
enum light {on, off};
enum bool {true, false};
Структура.
Структурой называется упорядоченная совокупность данных, называемых полями структуры.
Поля структуры могут иметь любой тип, исключая тип void и функцию. Следует иметь в виду, что структура может содержать только такие поля, длина которых известна компилятору в момент определения структуры.
Структурным типом данных или структурой называется тип, описывающий структуру. Объявляется структурный тип следующим образом:
struct [имя_структуры]
{
/*объявление членов структуры*/
};
struct – ключевое слово; имя_структуры служит для именования структурного типа и называется тэгом структуры (teg).
Допускается объявление структур, не имеющих имени. Такие структуры называются анонимными и все переменные такого типа объявляются сразу же при объявлении структуры.
struct [emp]
{
int empno; //табельный номер
char name [20]; //фамилия
double salary; //зарплата
};
Это пользовательский тип данных!!!
Для задания переменных этого типа необходимо записать:
emp b, c;
При объявлении анонимной структуры:
struct {double x, y}
vect;
При объявлении переменной структурного типа можно проинициализировать её поля сразу:
emp a = {10, “Los”, 5000};
Для доступа к полям переменной используется конструкция:
Переменная. Имя_поля
Учитывая эту запись, можно записать:
c.empno = 30;
strcpy (c.name, “Boyko”);
c.salary = 2000;
Элементами структуры могут быть массивы и другие структуры.
Структуры первого типа можно присваивать друг другу:
emp d = c;
При такой записи происходит поэлементное копирование полей структуры.
Замечание: в структуре нельзя объявлять элемент, тип которого совпадает с типом объявляемой структуры. Но разрешается объявление элемента структуры, тип которого является указателем на тип объявляемой структуры.
struct stack
{int item;
stack*next;
};
Объединения.
Объединением называется область данных, используемая для хранения данных различных типов одновременно. Одновременно в объединении могут храниться данные только одного определённого типа. Объявляется следующим образом:
union имя_объединения
{
/*объявление объединения*/
};
union – ключевое слово; имя_объединения – наименование и ТЭГ объединения.
Не допускаются анонимные объединения.
Пример:
union num
{int n;
double f;
};
При объявлении переменной данного типа её значение можно инициализировать значением, которое имеет тип первого элемента объединения: num e = {10};