- •1. Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
- •Ограничение на наследование
- •2. Класс в ооп и его основные компоненты.
- •Объявление класса
- •3. Перегрузка функций.
- •4. Уровни доступа к элементам класса.
- •5. Область видимости объектов, скрытие имен.
- •6. Динамическая память, функции работы с памятью.
- •7. Динамическая память, операции работы с памятью.
- •9. Передача аргументов в функцию по умолчанию.
- •10. Понятие класса, общая структура.
- •Объявление класса
- •11. Характеристика элементов-данных класса.
- •12. Характеристика методов класса. Использование операции привязки «::»
- •13. Указатель «this». Пример явного использования.
- •14.Функции-друзья класса.
- •15. Функции-конструкторы. Явный и косвенный вызов конструктора.
- •16. Функции-деструкторы.
- •17. Методы класса с атрибутом «const».
- •18. Статические методы и данные. Атрибут «static»
- •19. Указатели на компоненты класса
- •20. Наследование. Базовый и производный классы.
- •21.Инициализация объектов при наследовании
- •22. Указатели на производный и базовый классы. Формат явного преобразования указателей на базовый класс.
- •23.Виртуальный базовый класс
- •24.Консруктор во множественном наследовании
- •25.Виртуальные функции. Переопределение виртуальной функции.
- •26.Понятие абстрактного класса
- •29. Перегрузка методами класса
- •34.Итераторы
- •35.Алгоритмы
- •36. Потоковые классы.
- •37.Управление выводом. Манипуляторы и флажки.
- •38. Файловые потоки.
- •39.Шаблоны функций
- •40.Шаблоны классов.
- •46. Указатель типа «void».
- •48. Операция «typeid»
48. Операция «typeid»
Для динамической идентификации типов применяются операторы dynamic_cast и typeid (определён в файле typeinfo.h), для использования которых информацию о типах во время выполнения обычно необходимо добавить через опции компилятора при компиляции модуля.
Оператор dynamic_cast пытается выполнить приведение к указанному типу с проверкой. Целевой тип операции должен быть типом указателя, ссылки или void*.
Если целевой тип — тип указателя, то аргументом должен быть указатель на объект класса.
Если целевой тип — ссылка, то аргумент должен также быть соответствующей ссылкой.
Если целевым типом является void*, то аргумент также должен быть указателем, а результатом операции будет указатель, с помощью которого можно обратиться к любому элементу «самого производного» класса иерархии, который сам не может быть базовым ни для какого другого класса.
Оператор typeid возвращает ссылку на структуру type_info, которая содержит поля, позволяющие получить информацию о типе.