- •Преобразование типов указателей
- •Операторы определения адреса и обращения по адресу
- •Указатели на константы и константные указатели
- •Арифметические действия с указателями
- •Одномерные и многомерные массивы.
- •Строки символов. Основные функции для работы со строками.
- •Перечисление.
- •Структура.
- •Объединения.
- •Битовые поля.
- •Тип данных bool. Тип данных wchar_t.
- •Способы передачи параметров в подпрограммы.
- •Операторы распределения памяти.
- •Объявление typedef.
- •Оператор sizeof.
- •Передача аргументов по умолчанию.
- •Встроенные функции.
- •Определение пространства имён.
- •Оператор разрешения области видимости.
- •Объявление «using». Директива «using». Псевдонимы.
- •Механизм обработки исключений.
- •Вложенные исключения.
- •Определение класса.
- •Указатель this. Спецификаторы доступа к членам класса.
- •«Друзья» класса.
- •Конструктор класса. Список инициализации.
- •Конструктор по умолчанию.
- •Конструктор копирования.
- •Явные конструкторы.
- •Деструкторы.
- •Встроенные функции–члены класса. Статические члены класса.
- •Функции-члены класса с квалификаторами const и volatile.
- •Вложенные классы. Локальные классы.
- •Общие правила перегрузки операторов.
- •Перегрузка оператора присваивания.
- •Оператор индексирования [].
- •Перегрузка бинарных операторов.
- •Составные операторы присваивания.
- •Оператор вызова функции.
- •Операторы преобразования типов (конверторы).
- •Структура данных – стек.
- •Структура данных – очередь.
- •Деревья.
- •Наследование
- •Доступ к членам наследуемого класса
- •Конструкторы, деструкторы и наследование
- •Наследование и присваивание.
- •Виртуальные функции.
- •Полиморфизм и позднее связывание.
- •Передача аргументов по умолчанию в виртуальные функции.
- •Виртуальные деструкторы.
- •Абстрактные классы.
- •Множественное наследование.
- •Виртуальное наследование.
Множественное наследование.
В языке программирования С++ разрешается наследовать производный класс от нескольких базовых классов. Такое наследование называется множественным. В иерархии с множественным наследованием производный класс может косвенно наследовать несколько экземпляров базового класса. В этом случае для доступа к повторяющимся членам базового класса используется оператор разрешения области видимости «::» с именами базовых классов в качестве квалификаторов.
Виртуальное наследование.
Для того чтобы исключить передачу нескольких экземпляров базового класса по иерархии при множественном наследовании, непосредственные потомки этого базового класса должны объявить его виртуальным при помощи ключевого слова virtual в списке базовых классов. Такое наследование базового класса называется виртуальным. А сам базовый класс называется виртуальным базовым классом. При виртуальном наследовании необходимо, чтобы конструктор виртуального базового класса вызывался только 1 раз. Поэтому при создании объектов производного класса сначала вызываются все конструкторы базовых виртуальных классов, а потом конструкторы остальных базовых классов в порядке их следования в иерархии.