Объектно-ориентированное программирование на C++


КОНТРОЛЬНЫЕ ВОПРОСЫ


  • Какие существуют механизмы для создания новых типов?
  • В чем смысл декомпозиции при составлении программ?
  • В чем различие между видами и методами (способами) абстракции?
  • Классы операций абстракции данных. Полнота класса операций.
  • Парадигма ООП. Специфика интерфейса ОО программ.
  • Преимущества ООП.
  • Понятие класса. Отношение "объект - класс".
  • Понятие полиморфизма. Проявления полиморфизма.
  • Механизм наследования.
  • Модификатора доступа и наследования. Как изменяются атрибуты элементов класса при наследовании?
  • Смысл инкапсуляции.
  • В чем разница между struct, class и union?
  • Что такое конструктор, деструктор и когда они вызываются?
  • Что такое встраиваемая функция? В чем ее преимущества и недостатки?
  • Какие два способа существуют для создания встраиваемой функции?
  • Как можно передать в функцию в качестве аргумента адрес объекта?
  • Что такое дружественная функция?
  • Когда следует переопределять операторы с помощью дружественных функций, а когда с помощью функций элементов класса?
  • Что происходит при присваивании одного объекта другому (без переопределенной операции =) и какие побочные эффекты могут возникнуть?
  • При передаче объекта в функцию в качестве аргумента создается копия этого объекта. Изменение копии в теле функции не отражается на оригинале. Возможно ли нарушение этого правила?
  • Какая функция может иметь доступ к защищенным членам одного класса? ... двух классов?
  • Что такое указатель this. Приведите пример использования этого указателя.
  • Для чего необходимы операторы new и delete. В чем их отличие от функций malloc() и free()?
  • Что такое ссылка? Какое имеется преимущество при использовании ссылки в качестве параметра функции, а в чем недостаток? В чем разница между ссылкой и указателем?
  • Назовите причины, по которым может понадобиться перегрузка конструкторов и деструкторов (в одном классе).
  • Какова основная форма конструктора копирования и когда он вызывается?
  • Что такое аргумент по умолчанию? Как аргумент по умолчанию связан с перегрузкой функций?
  • Почему может потребоваться перегрузка оператора присваивания?
  • Как можно ли изменить приоритет перегруженного оператора?
  • Что такое виртуальная функция?
  • Какие функции не могут быть виртуальными?
  • Что такое абстрактный класс и чем может быть вызвана необходимость построений абстрактного класса?
  • Чем виртуальные функции отличаются от перегружаемых?
  • Раннего и позднее связывание.
  • Совместимость типов. Какую роль в достижении совместимости объектов могут играть абстрактные классы?
  • Почему шаблоны называют параметризованными типами?
  • Когда следует в программе применять шаблоны, а когда нет?
  • Чем шаблоны лучше макроподстановок?
  • Для каких типов данных может применяться конкретный шаблон, а для каких нет?
  • В чем разница между классом и шаблоном класса?
  • Что может выступать в качестве параметра для шаблона класса?
  • В чем основное преимущество использования библиотеки потокового ввода-вывода?
  • Как работает операция внесения (на примере)?
  • Что такое манипулятор ввода - вывода?
  • Организация файлового и строкового потока.


  • Содержание раздела