
- •Структуры
- •Массив структур
- •Указатели на структуру
- •Битовые поля
- •Объединения
- •Перечисления
- •Переименование типов
- •Открытие файла
- •Функции работы с файлами
- •Форматный ввод/вывод
- •Ввод/вывод строк. Функции позиционирования
- •Чтение из двоичного файла и запись в него
- •Свойства ООП
- •1.1 Свойства ООП
- •Понятие класса в С++
- •1.2 Понятие класса С++
- •Создание класса
- •1.3 Создание класса
- •Члены класса
- •1.4 Члены класса
- •Инкапсуляция
- •1.5. Инкапсуляция
- •1.6 Функции-члены класса
- •Реализация понятия «дата» при помощи структуры
- •1.7 Реализация понятия «дата» при помощи структуры
- •Реализация понятия «дата» при помощи класса
- •1.8 Реализация понятия «дата» при помощи класса
- •Определение и вызов функций–членов класса
- •Выводы. Примеры
- •1.9 Выводы
- •1.10 Пример создания класса
- •Конструкторы
- •2.1 Конструкторы
- •2.2 Пример класса без конструктора
- •2.3 Пример класса с конструктором
- •2.4. Конструктор с параметрами по умолчанию
- •2.5. Деструкторы
- •2.6. Пример класса с конструктором и деструктором
- •2.7. Подставляемые или inline функции.
- •2.8. Подставляемые функции-члены.
- •2.9. Указатель this
- •2.10. Использование указателя this
- •Дружественные функции
- •3.1 Дружественные функции
- •3.2 Пример дружественной функции
- •3.3 Дружественные классы
- •3.4. Уточнение имени элемента.
- •3.5. Определение переменных непосредственно перед использованием
- •3.6. Статические элементы класса.
- •2.7. Пример
- •Перегруженные функции
- •4. Перегрузка функций и операций
- •4.1 Полиморфизм
- •4.2 Перегруженные функции
- •4.3 Перегрузка конструктора
- •4.4 Выбор экземпляра функции
- •4.5 Перегрузка стандартных операций
- •4.6 Перегрузка операций сложения и присваивания
- •4.7 Перегрузка операций ++ и --
- •4.8 Дружественные функции-операции
- •4.9 Перегрузка операции индексации []
- •4.10 Аргументы по умолчанию
- •5. Работа с объектами
- •5.1 Ссылки в С++
- •5.2 Передача объектов, как аргументов функции
- •5.3 Массивы объектов
- •5.4 Указатель на объект
- •5.5 Динамическое выделение памяти. Операторы new, delete.
- •5.6 Локальные классы
- •5.7 Вложенные классы
- •5.8 Имена заголовочных файлов в С++
- •5.9 Строковые переменные в С++.
- •6. Наследование
- •6.1 Понятие наследования
- •6.2 Базовые и производные классы
- •6.3 Одиночное и множественное наследование
- •6.4 Управление доступом производных классов
- •6.5 Пример
- •6.6 Конструкторы с параметрами при наследовании
- •6.7 Конструкторы при множественном наследовании
- •7. Виртуальные функции. абстрактные классы
- •7.1 Указатели на производные типы
- •7.2 Виртуальные функции
- •7.3 Пример
- •7.4 Чистые виртуальные функции и абстрактные типы
- •7.5 Виртуальные базовые классы
- •7.6 Шаблоны
- •7.7 Шаблоны функций
- •7.8 Пример
- •7.9 Использование шаблонов с двумя типами параметров
- •7.10 Шаблоны классов
Определение класса является объявлением некоторого типа. Для дальнейшей работы необходимо объявлять соответствующие переменные или объекты класса.
class Cl_X { ... }; // Объявление типа Cl_X
Cl_X x; // Объявляем переменную х – объект класса (типа) Cl_Х
Объекты класса можно присваивать, передавать в качестве параметров функции и возвращать как её результат. Другие естественные операции, вроде проверки на равенство, также могут быть определены пользователем.
Члены класса
1.4 Члены класса
В списке членов класса можно объявлять переменные, функции, классы, перечисления, а также дружественные функции и классы. Член класса не может объявляться в списке членов класса дважды. Это относиться и к функциям (хотя могут быть функции с одним именем, но разным набором формальных параметров). Кроме того, нельзя объявить в классе переменную и функцию с одним именем. Список членов класса определяет полный набор членов этого класса. Нельзя добавлять к классу члены ещё в каком-то месте.
class Cl_X
{int n;
void fun(void)
};
Член класса не может иметь инициализатора. Член класса не может быть объявлен
со спецификациями класса памяти auto, extern и register. Инициализация объектов класса осуществляется с помощью конструкторов. Объект класса не может содержать объект того же класса, но может содержать указатель или ссылку на объект того же класса.
Для доступа к членам класса (после объявления некоторой переменной этого класса или указателя на объект данного класса) используется следующий синтаксис:
<переменная> . <имя члена класса>
<указатель> -> <имя члена класса>
Управление доступом применяется единообразно к функциям-членам класса и даннымчленам класса.
Член класса может быть:
·закрытым (приватным) private – это значит, что его имя может употребляться лишь внутри функций-членов класса и друзей класса, в котором этот член класса объявлен;
·защищённым protected – это значит, что его имя может употребляться лишь внутри функций-членов класса, друзей этого класса и производных от него классов;