Введение в объектно-ориентированное программирование.ои(dor)

Введение в объектно-ориентированное программирование.ои(dor) — вариант 5

Просмотрите все вопросы и варианты бесплатно. Правильные ответы скрыты и открываются только после получения доступа.

15 вопросов Вариант 5 Доступ 7 дней
Содержание теста

Вопросы и варианты

Без отметок и подсказок к правильным ответам

Вопрос 1

Для объявления функции как виртуальной используется ключевое слово…

  1. … virtual
  2. … private
  3. … public
Вопрос 2

Обычно компиляторы при обработке виртуальных функций добавляют к каждому объекту скрытый элемент, который содержит указатель на массив адресов функций, называемый …

  1. …возвращаемое значение
  2. … защищенным членом класса
  3. …таблицей виртуальных функций
Вопрос 3

Полиморфизм в объектно-ориентированном программировании реализуется:

  1. через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны
  2. через механизмы перегрузки (функций и операции шаблоны
  3. через виртуальные функции и шаблоны
Вопрос 4

Шаблон функции - это...

  1. прототип функции, в котором вместо имен параметров указан условный тип
  2. определение функции, в которой типу обрабатываемых данных присвоено условное обозначение
  3. определение функции, в котором указаны возможные варианты типов обрабатываемых параметров
Вопрос 5

Для указания на объект производного класса можно воспользоваться …

  1. указателем базового класса
  2. виртуальной функций
  3. защищенным членом класса
Вопрос 6

Множественное наследование – это …

  1. наследование, при котором создание производного класса основывается на использовании нескольких непосредственных базовых классов
  2. наследование, при котором создание производного класса основывается на использовании одного базового класса
  3. наследование, при котором удаление производного класса основывается на использовании нескольких непосредственных базовых классов
Вопрос 7

Установите соответствие между терминами и определениями:

  1. public
  2. protected
  3. private
  4. открытое наследование
  5. защищенное наследование
  6. закрытое наследование
Вопрос 8

Установите соответствие между терминами и определениями:

  1. чисто-виртуальная функция
  2. дружественная функция
  3. статическая функция
  4. делает свой класс абстрактным
  5. имеет доступ к скрытым данным класса, по отношению к которому она объявлена таковой
  6. работающая с классом в целом, а не над отдельными его объектами
Вопрос 9

Установите соответствие между термином и его определением.

  1. статический полиморфизм
  2. динамический полиморфизм
  3. осуществляется за счет перегрузки и шаблонов функций
  4. реализуется виртуальными функциями
Вопрос 10

Установите порядок выполнения конструкторов при порождении из нескольких классов:

  1. конструкторы базовых классов в порядке их задания
  2. конструкторы членов, являющихся объектами класса
  3. конструктор порожденного класса
Вопрос 11

Если есть два класса, один из которых базовый, а другой — унаследованный от базового, то последовательность вызовов следующая:

  1. вызов конструктора базового класса
  2. вызов конструктора унаследованного класса
  3. компиляция
Вопрос 12

Ниже представлен код, проставьте последовательность действий, которая произведена в этом коде:

  1. создаем объект c класса C
  2. указываем rparent ссылаться на часть A объекта c
  3. вызываем метод rParent.getName()
  4. вызываем rParent.GetName(), что приводит к вызову A::getName(). Однако, поскольку A::getName() является виртуальной функцией, то компилятор ищет «наиболее» дочерний метод между A и C. В этом случае — это C::getName()
Вопрос 13

Перед Вами код с перегрузкой методов. Выберите правильное описание работы кода.

  1. здесь описывается одна версия функции show().Функция не возвращает результат. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
  2. в данном примере описывается одна версия функции show(). У функции текстовый аргумент. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
  3. здесь описывается две версии функции show(). В одном случае функция описана без аргументов. Во втором случае у функции текстовый аргумент. Функция в обоих случаях не возвращает результат. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
Вопрос 14

Перед Вами код. Выберите, какой результат кода:

  1. Base NonVirtual called. Base Virtual called. Base NonVirtual called. Derived Virtual called
  2. Base NonVirtual called. Base Virtual called. Base NonVirtual called
  3. Base NonVirtual called. Derived Virtual called
Вопрос 15

Перед Вами код. Выберите, какой будет результат кода:

  1. rParent is a Child. Поскольку rParent является ссылкой на родительскую часть объекта child, то, обычно, при обработке rParent.getName() вызывался бы Parent::getName(). Тем не менее, поскольку Parent::getName() является виртуальной функцией, то компилятор понимает, что нужно посмотреть, есть ли переопределения этого метода в дочерних классах. И компилятор находит Child::getName()
  2. rParent.getName. При обработке rParent.getName(), компилятор видит, что метод является виртуальной функцией. Когда Child ссылается на часть объекта getName, то компилятор просматривает все классы между Child и getName, чтобы найти наиболее дочерний метод speak(). И находит Child::speak(). В случае, когда getName ссылается на часть Child объекта main, компилятор находит rParent.getName()
  3. ничего не выведет. В этом случае Child::getValue() не считается подходящим переопределением для Parent::getValue(), так как типы возвратов разные (метод Child::getValue() считается полностью отдельной функцией)