Skip to content

5 Lesson

Konychev Valera edited this page Mar 3, 2019 · 6 revisions
  • Краткое повторение:

    • public наследования (protected)
    • виртуальных (virtual) методов
      • Статическое и динамическое связывание.
      • Друзья не могут быть виртуальными функциями.
      • Переопределение скрывает методы.
  • Абстрактные базовые классы

    • Чистая виртуальная функция = 0
  • Касты:

    • static_cast<>
    • RTTI - Только для иерархий с виртуальными методами классов.
      • *dynamic_cast<basePtr > - создаёт указатель на производный класс из указателя на базовый, когда это возможно. В случае провала вернёт nullptr.
      • typeid - возвращает величину, идентифицирующую точный тип объекта.
      • type_info - структура, содержащая информацию о типе.
    • const_cast<>
    • reinterpret_cast<>
  • Внутреннее устройство объектов класса:

    • Размещение полей объекта в памяти базового класса.
      • Последовательность создания полей объекта при вызове конструктора класса.
    • Размещение полей объекта класса наследника.
    • Таблица виртуальных методов.
    • Поддержка RTTI.

  • Краткое знакомство с шаблонными классами.
    • vector
    • array (c++11)
    • valarray
Clone this wiki locally