- •1) Структурные типы данных и переменные этих типов .-
- •2) Передача структурных переменных функциям .-
- •3)Указатели на структурные переменные .
- •4) Массивы структурных переменных .
- •6)Поля битов. Средство typedef-
- •7) Понятие макроподстановки .
- •8) Включение файлов .
- •9)Условная компиляция.
- •12)Обработка двоичных файлов . Последовательный и произвольный доступ.
- •2)Произвольный доступ.
- •13)Аргументы используемые по умолчанию .-
- •14)Использование ссылок .
- •15)Встроенные функции.-
- •16)Операция разрешения видимости .(::)
- •17)Пространства имен.
- •18)Перегруженные функции.-
- •20)Определение классов.
- •21)Элементы класса.
- •22) Способы доступа к элементам класса .
- •23) Конструктор и деструктор.
- •24) Конструктор копии . Операция присваивания.-
- •25) Преобразование объектов класса в другие типы и их получение из других типов .
- •26)Перегрузка операций .
- •27)Дружественные функции.
- •28)Наследование классов .
- •29)Обработка исключительных ситуаций .
- •30)Визуалка.
20)Определение классов.
Класс можно считать понятием структурного типа , то есть типа данных , определяемых программистом . В Си++ при задании нового типа можно дополнительно определить набор функций , доступных только для данных этого типа . Переменная , которая описывается в качестве переменной данного типа называется представителем класса или объектом класса . Синтаксически определение класса похоже на определение структурного типа , за исключением отличий :
-Определение класса может одержать один или несколько спецификаторов доступа (public , private , protected)
-На ряду с элементами данных определения класса как правило включает в себя элементы функций .
-Обычно в класс добавляются некоторые специальные функции-элементы , которые обладают способностью вызываться неявно и существуют даже если автор класса их не писал .
Class vyalov {int n;
Point sovest
Public:vyalov (int t);
Vyalov ();
};
21)Элементы класса.
Элементы класса делятся на 2 категории: данные хранящие информацию о представителе класса и элементы функции , реализующие поведение этих представителей .
Элементы данных классов Си++ не могут быть представителями самого этого класса , не могут объявляться как extern и regiset. Элементы данные могут быть перечислениями , битовыми полями , представителями ранее объявленных классов , указателем или ссылкой на этот класс . Элемент-функция – это функция , прототип которой объявлен внутри тела класса . Тело функции так же может записываться прямо в определении класса. В этом случае вместо прототипа будет заголовок . Такая функция автоматически будет встроенной . Если функция определена вне тела класса , то в заголовке перед именем функции помещается имя класса и операция разрешения видимости
Float kvadrat::proverka
22) Способы доступа к элементам класса .
В Си++ можно ограничить видимость данных и функций класса при помощи специальных меток .
В зависимости от выбранной метки происходит следующее :
При метке private элементы данных и функций элементов доступны только для функций и элементов этого же класса (защита от тупого программиста , чтобы в мэйне не накосячил).
При метке public элементы данных и функций элементов классов доступны для любых функций программы , в которой имеется представитель класса .
При метке protected элементы данных и функции элементов доступны для функций элементов данного класса и классов производных от него .
Метка – спецификатор доступа применяется ко всем элементам класса , следующего за ней . пока не встретится другая метка или не закончится определение .
23) Конструктор и деструктор.
Специальная функция – элемент класса конструктор вызывается компилятором всегда , когда создается представитель класса . Конструктор является функцией элементом с тем же именем , что и ее класс. Если никаких конструкторов не определено , то компилятор генерирует конструктор по умолчанию , не имеющий параметров . Для конструктора не указывают возвратный тип и он не может возвращать значения . Как правило в теле конструктора инициализируются элементы данных класса , хотя конструктор является обычной функцией и в его теле можно писать все что угодно . Определение конструктора может содержать список инициализации , который определяется :: под заголовка определения функции и содержит элементы данных , разделяющих «,».
Деструктор является специальной функцией , элементы которой вызываются при гибели объекта класса и должна производить необходимую отчистку обхекта перед освобождением памяти . Деструктор не может иметь аргумента .