
- •Преобразование типов указателей
- •Операторы определения адреса и обращения по адресу
- •Указатели на константы и константные указатели
- •Арифметические действия с указателями
- •Одномерные и многомерные массивы.
- •Строки символов. Основные функции для работы со строками.
- •Перечисление.
- •Структура.
- •Объединения.
- •Битовые поля.
- •Тип данных bool. Тип данных wchar_t.
- •Способы передачи параметров в подпрограммы.
- •Операторы распределения памяти.
- •Объявление typedef.
- •Оператор sizeof.
- •Передача аргументов по умолчанию.
- •Встроенные функции.
- •Определение пространства имён.
- •Оператор разрешения области видимости.
- •Объявление «using». Директива «using». Псевдонимы.
- •Механизм обработки исключений.
- •Вложенные исключения.
- •Определение класса.
- •Указатель this. Спецификаторы доступа к членам класса.
- •«Друзья» класса.
- •Конструктор класса. Список инициализации.
- •Конструктор по умолчанию.
- •Конструктор копирования.
- •Явные конструкторы.
- •Деструкторы.
- •Встроенные функции–члены класса. Статические члены класса.
- •Функции-члены класса с квалификаторами const и volatile.
- •Вложенные классы. Локальные классы.
- •Общие правила перегрузки операторов.
- •Перегрузка оператора присваивания.
- •Оператор индексирования [].
- •Перегрузка бинарных операторов.
- •Составные операторы присваивания.
- •Оператор вызова функции.
- •Операторы преобразования типов (конверторы).
- •Структура данных – стек.
- •Структура данных – очередь.
- •Деревья.
- •Наследование
- •Доступ к членам наследуемого класса
- •Конструкторы, деструкторы и наследование
- •Наследование и присваивание.
- •Виртуальные функции.
- •Полиморфизм и позднее связывание.
- •Передача аргументов по умолчанию в виртуальные функции.
- •Виртуальные деструкторы.
- •Абстрактные классы.
- •Множественное наследование.
- •Виртуальное наследование.
Битовые поля.
Битовым полем называется элемент структуры или объединения, который определяет последовательность бит и описывается следующим образом:
Тип [имя_поля]: длина_в_битах;
Тип принимает одно из значений int, signed, unsigned. Длина в битах должна быть неотрицательным целым числом.
struct demo
{int count;
unsigned b 1:1
unsigned b 2:1
doule d;
};
Можно объявить и проинициализировать:
demo e = {10, 1, 0, 10.5};
Используются битовые поля для установки различных флагов.
Доступ к элементам битового поля осуществляется также, как и к остальным членам структуры – через оператор точку: e.b1 = 0;
Тип данных bool. Тип данных wchar_t.
Переменная типа bool может принимать одно из значений: true или false.
bool b = true;
Объекты типа bool неявно преобразуются в объекты типа int. Соответственно: false – в 0, true – в 1. аналогично любое целое значение может быть преобразовано в тип bool:
bool b;
b = 0;
b = (bool) 10;
Тип данных wchar_t.
Этот тип данных был добавлен совсем недавно. Для хранения значений этого типа используется 2 байта. В зависимости от реализации этот тип может быть со знаком или без знака: 0 ÷ 65535.
Этот тип данных используется для хранения символов, задаваемых спецификацией UNICOD, которая содержит символы национальных алфавитов и под каждый символ отводится 2 байта.
Широкие символьные константы определяются следующим образом:
L ‘ ’ – перед символом.
Можно задавать и символы стандартной таблицы:
wchar_t w = L ‘s’;
Строка состоит из широких символов, задаётся следующим образом: берётся в двойные кавычки, перед которыми ставится L:
wchar_t ws = L “stroka”;
Способы передачи параметров в подпрограммы.
Подпрограммой называются функции.
Существует 3 способа передачи параметра в подпрограммы:
по значению;
по адресу;
по ссылке;
В 1-м случае в локальные параметры подпрограммы копируются значения фактических параметров. Поэтому любое изменение этих значений в подпрограмме не влияет на значение переменных в вызывающей программе:
int func (int a)
{a++;
return a;
}
void main ()
{int a, b;
a=5;
b = func (a); //func (5)
}
Передача параметров по адресу используется в том случае, если необходимо сохранить изменения, производимые функцией в тех параметрах, которые передаются в эту функцию. При этом в качестве параметров передаются адреса переменных, которые копируются в локальные выделенные переменные:
Например, необходимо написать функцию, которая одновременно вычисляет и количество цифр в числе, и сумму цифр.
Массивы и строки в подпрограммы всегда передаются по адресу и никогда по значению.
Передача параметров по ссылке.
Ссылкой называется указатель на переменную или константу, который всегда разыменовывается при его использовании.
Для объявления переменной типа ссылка используется символ &, который записывается перед именем переменной. Если ссылка используется как самостоятельный объект, то она должна быть инициализирована константой или переменной при своём определении. В 1-м случае ссылка называется константной, во 2-м – псевдонимом переменной.
После инициализации ссылка не может быть изменена. Со ссылкой на объект можно производить те же действия, что и с объектом, на который она ссылается.
const int n = 10; //ссылка на константу
const int &rn = n; //ссылка на переменную
Определяем ссылку на переменную:
int m = 2;
int &rm = m;
rn = 20;