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

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

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

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

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

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

Вопрос 1

Оператор разрешения обычно …

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

К преимуществам использования наследования не относится:

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

Назначение наследования состоит в том, чтобы:

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

Механизм формирования новых классов из уже существующих или базовых классов – это …

  1. полиморфизм
  2. наследование
  3. абстрагирование
Вопрос 5

Укажите первую строку описания класса Tire, который является производным классов Wheel и Rubber:

  1. class Wheel: public Tire
  2. class Tire: public Wheel,public Rubber
  3. class Rubber: public Tire
Вопрос 6

Общий синтаксис механизма наследования выглядит следующим образом:

  1. class имя: тип_наследования имя_базового_класса {// программный код производного класса}
  2. classname имя: имя_базового_класса {// программный код производного класса}
  3. class имя: тип_наследования {// программный код производного класса}
Вопрос 7

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

  1. множественное наследование
  2. простое наследование
  3. виртуальное наследование
  4. когда у подкласса два или более суперкласса
  5. когда подкласс имеет одного родителя
  6. предотвращает появление множественных объектов базового класса в иерархии наследования
Вопрос 8

Установите соответствие между типами наследования и их значениями

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

Установите соответствие между операциями в наследовании и их значениями

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

Проставьте последовательность выполнения представленного кода:

  1. в классе Child указываются значения
  2. прописываются доступы к к члену класса Parent
  3. описывается класс Parent
  4. указывается, что класс Child наследуется от Parent
Вопрос 11

Проставьте последовательность создания кода:

  1. прописываем значение переменной количества часов преподавателя
  2. прописываем фамилию имя отчество учителя
  3. прописываем вывод фамилии имени отчества учителя
  4. прописываем вывод «Количества часов:»
Вопрос 12

Проставьте последовательность создания кода простого наследования:

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

Описать код программы:

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

Важный момент при наследовании – это перегруженные функции-методы класса-потомка. Если в классе-родителе и в его классах-потомках встречаются методы с одинаковым именем, то для объектов класса-потомка компилятор будет использовать методы именно класса-потомка. Перегруженные методы класса-потомка, могут вызывать методы класса-родителя. В таком случае, важно помнить, что необходимо правильно определить область действия с помощью оператора «::». Иначе, компилятор воспримет это, как вызов функцией самой себя. Наглядно, если бы мы перегрузили в классе функцию - это выглядело бы так. Опишите, что указывает данная запись кода.

  1. эта запись указывает компилятору — если значение FirstClass не равно нулю — вызвать метод show_value() класса value. А он, в свою очередь, отобразит это значение на экране
  2. эта запись указывает компилятору — если значение value не равно нулю — вызвать метод FirstClass класса show_value(). А он, в свою очередь, отобразит это значение на экране
  3. эта запись указывает компилятору — если значение value не равно нулю — вызвать метод show_value() класса FirstClass. А он, в свою очередь, отобразит это значение на экране
Вопрос 15

В определенных ситуациях могут появиться проблемы, связанные со множественным наследованием. Допустим, что в обоих базовых классах существуют методы с одинаковыми именами, а в производном классе метода с таким именем нет. Рассмотрим пример. Как в этом случае объект производного класса определит, какой из методов базовых классов выбрать?

  1. проблема решается путем использования оператора разрешения, определяющего класс, в котором находится метод. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу A, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу B, Б
  2. проблема решается путем использования перегрузки функций. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу С, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу A
  3. проблема решается путем использования оператора наследования. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу B, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу C