Описание
Введение в объектно-ориентированное программирование тест Синергия МТИ все ответы 100 баллов отлично
Модификаторы доступа являются ключевыми слова, которые задают параметры доступа для классов, методов и прочих элементов в …
В определении класса члены класса с ключевым словом private доступны:
Методу класса всегда доступны данные:
Шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализация полей-переменных и реализация поведения функций или методов – это …
Структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии – это …
Метод программирования, идея которого была основана на представление программы, как совокупность объектов – это…
Установите соответствие между терминами и определениями:
Установите соответствие между открытиями и их создателями:
Установите соответствия между языками и видами программирования.
Проставьте открытия в программировании в исторической последовательности:
Проставьте создание языков программирования в исторической последовательности (от старого до нового):
Проставьте историческую последовательность: как после появления объектно-ориентированного программирования развивалось это направление:
” Предсказать результат следующей программы:
”
” Представлен код программы. Какой результат выполнения?
”
” Перед Вами код. Опишите его работу.
”
Специальная функция класса, которая вызывается при создании нового объекта этого класса и предоставляет возможность инициализировать объекты во время их создания и гарантировать, что все данные члены будут иметь корректные значения это …
Специальный метод без параметров, имя которого состоит из символа ~ и имени класса это …
Конструктор копирования должен иметь в качестве параметра ссылку, потому что …
Конструкторы подчиняются тем же правилам относительно типов параметров, что и …
При выполнении операции присваивания между существующими объектами одного типа вызывается …
Варианты использования (кроме всего прочего) нужны для:
При описании нового объекта с инициализацией другим объектом этого же типа вызывается …
Установите последовательность создания конструктора:
Если есть два класса, один из которых базовый, а другой – унаследованный от базового, то последовательность вызовов следующая:
” Конструктор — это особый тип метода класса, который автоматически вызывается при создании объекта этого же класса. Деструктор — это специальный тип метода класса, который выполняется при удалении объекта класса. В то время, как конструкторы предназначены для инициализации класса, деструкторы предназначены для очистки памяти после него. Т.о., опишите код программы:
”
” Предсказать результат следующей программы:
”
” Перед Вами код. Опишите его результат.
”
Обычно, компилятор автоматически создает конструктор копирования для каждого класса, но в некоторых случаях, программист создает конструктор копирования, называемый:
Специальный конструктор в языке программирования C++, и в некоторых других языках программирования, применяемый для создания нового объекта, как копии уже существующего:
Конструктор копирования должен иметь в качестве параметра ссылку, потому что …
Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка») – это правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода:
Особый вид оператора присваивания, используемый для присваивания объектов одного класса друг другу …
Операторы присваивания хранят значение в объекте, указанном левым операндом. Существует два вида операций присваивания:
Установите соответствие между операторами и их значениями:
Установите соответствие между операторами и их значениями
Установите соответствие между операторами и их значениями
Проставьте последовательность алгоритма процесса присваивания
” Посмотрите код и напишите алгоритм его создания:
”
” Посмотрите код и напишите алгоритм его создания
”
” Описать работу кода программы:
”
” Описать работу кода программы:
”
” Операция присваивания копированием – это особый вид операции присваивания, используемый для присваивания объектов одного класса друг другу. Является одним из особых членов-функций и генерируется автоматически компилятором в случае, если нет явного объявления программистом. Код, сгенерированный компилятором и выполняет побитовое копирование. Операция присваивания копированием отличается от конструктора копирования тем, что должна очищать члены-данные цели присваивания (и правильно обрабатывать самоприсваивание), тогда как конструктор копирования присваивает значения неинициализированным членам-данным. Опишите работу кода программы:
”
Предположим, что класс Derv является частным производным класса Base. Мы определяем объект класса Derv, расположенный в функции main(). Через него мы можем получить доступ к:
Иерархия классов …
Использование виртуальных функций для полиморфной обработки родственных объектов относят к:
Процесс создания новых классов, называемых наследниками или производными классами, из уже существующих или базовых классов– это …
Роль наследования в объектно-ориентированном программировании заключается в:
Синтаксис наследования выглядит так:
” Основное преимущество наследования – это возможность повторного использования кода. Укажите последовательность выполнения представленного кода:
”
” Укажите последовательность написания кода:
”
” Как решить вопрос о том, какой из спецификаторов использовать при наследовании? В большинстве случаев, производный класс представляет собой улучшенную или более специализированную версию базового класса. В случае, когда объект производного класса предоставляет доступ как к общим методам базового класса, так и к более специализированным методам своего класса, имеет смысл воспользоваться общим наследованием. Проставьте последовательность создания кода простого наследования:
”
” Ключевыми элементами методологии объектно-ориентированного проектирования, связанного с наследованием относят: 1) выбор надлежащей совокупности типов; 2) проектирование взаимосвязей между типами и применение наследования для использования общего кода; 3) использование виртуальных функций для полиморфной обработки родственных объектов. Опишите код программы, содержащую наследование:
”
” Важный момент при наследовании – это перегруженные функции – методы класса-потомка. Если в классе-родителе и в его классах-потомках встречаются методы с одинаковым именем, то для объектов класса-потомка, компилятор будет использовать методы именно класса-потомка. Перегруженные методы класса-потомка, могут вызывать методы класса-родителя. В таком случае, важно помнить, что необходимо правильно определить область действия с помощью оператора «::». Иначе, компилятор воспримет это, как вызов функцией самой себя. Наглядно, если бы мы перегрузили в классе функцию – это выглядело бы так. Опишите, что указывает данная запись кода:
”
” Роль наследования в ООП такая же, как у функций в процедурном языке программирования, т.е. сократить размер кода и упростить связи между элементами программы. В определенных ситуациях могут появиться некоторые проблемы, связанные со множественным наследованием. Рассмотрим наиболее общую проблему. Допустим, что в обоих базовых классах существуют методы с одинаковыми именами, а в производном классе метода с таким именем нет. Рассмотрим пример. Как в этом случае объект производного класса определит, какой из методов базовых классов выбрать?
”
ключевое слово virtual используется …
Когда используется таблица виртуальных функций?
Что реализуется через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны?
Определение функции, в которой типу обрабатываемых данных присвоено условное обозначение – это…
Указателем базового класса можно воспользоваться для …
Множественное наследование – это наследование, при котором создание производного класса основывается на …
Опишите процесс выполнения конструкторов при порождении из нескольких классов поэтапно.
Если существует два класса, один базовый, другой унаследованный от базового, то при необходимости вызова, последовательность будет следующая:
” Проставьте последовательность процесса написания представленного кода:
”
” Перегрузка методов это механизм, который позволяет создавать несколько методов с одним и тем же именем. В результате создается иллюзия, что можно вызывать метод с разными аргументами. Перед Вами код перегрузки функции. Выберите правильное описание работы кода.
”
” При множественном наследовании может сложиться ситуация, когда один и тот же базовый класс наследуется (через разные цепочки наследования) в производном классе несколько раз. Обычно, в этом ничего хорошего нет, т.к. нередко такие ситуации приводят к ошибкам. С другой стороны, совсем избежать подобных ситуаций бывает проблематично. Выход состоит в том, чтобы при создании цепочки наследования, использовать виртуальные базовые классы. Перед Вами код. Выберите, какой будет результат кода.
”
Виртуальные методы – это один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом, базовый класс определяет способ работы с объектами, и любые его наследники могут предоставлять конкретную реализацию этого способа. Общий шаблон объявления чисто виртуального метода следующий:
Классы, предназначенные для хранения данных, организованных определенным образом:
Набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++
Сущности, использующиеся для получения доступа к отдельным данным в контейнере.
Контейнеры бывают …
Последовательные контейнеры …
Все контейнерные классы предоставляют …
” Проставьте порядок выполнения кода поэтапно.
”
Проставьте последовательность функций классов-контейнеров в языке C++
” Пример работы с контейнером приведен ниже. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран. Опишите последовательность кода:
”
” Векторы — это умные массивы. Они занимаются автоматическим размещением себя в памяти, расширением и сужением своего размера по мере вставки или удаления данных. Векторы можно использовать в какой-то мере как массивы, обращаясь к элементам, с помощью привычного оператора []. Случайный доступ выполняется очень быстро в векторах. Также, довольно быстро осуществляется добавление (или проталкиваниновых данных в конец вектора. Когда это происходит, размер вектора автоматически увеличивается для того, чтобы было куда разместить новое значение. Рассмотрим код программы. Выберете, что демонстрирует данный пример.
”
” Стек – это динамическая структура сохранения данных, которая работает по принципу «последний пришел — первый вышел» (Last-In First-Out). В стеке добавление новых элементов и удаление существующих элементов производится с одного конца, который называется вершиной стека. Организация данных с помощью стека эффективна, когда нужно реализовать: обмен данными между методами приложения с помощью параметров; синтаксический анализ разнообразных выражений. Рассмотрим пример. Выберете, что будет результатом программы:
”
” Для работы с очередью вам понадобится знать функции: push(), pop(), front(), back(), empty(). 1) Для добавления в очередь нового элемента нужно воспользоваться функцией — push(). В круглых скобках должно находится значение, которое мы хотим добавить. 2) Если нам понадобилось удалить первый элемент нужно оперировать функцией pop(). В круглых скобках уже ничего не нужно указывать, но по правилам, они должны присутствовать! Эти функции не нуждаются в указании аргумента: empty(), back() и front(). 3) Если вам понадобилось обратиться к первому элементу очереди, то вам понадобится функция front(). 4) Чтобы обратиться к последнему элементу в очереди, вам поможет функция back(). 5) Чтобы узнать, пуста ли очередь, нужно воспользоваться функцией empty(). Если ваша очередь пуста — возвратит true. Если в ней что-то есть — возвратит false. В коде (нижмы использовали все выше перечисленные методы. Выберете, что будет результатом программы:
”
Механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы, и приводят к невозможности дальнейшей отработки программой её базового алгоритма – это:
Особый вид оператора, используемый для присваивания объектов одного класса друг другу – это…
Реакция на исключительное обстоятельство, которое возникает во время работы программы – это …
В C ++ функция может указывать исключения, которые она генерирует, с помощью ключевого слова:
Исключительные ситуации, возникающие при работе программы, можно разделить на два основных типа:
Классическим примером исключительной ситуации в С++ является:
Проставьте последовательность работы конструкций исключительных ситуации:
Обработка исключений, возбужденных оператором throw, идет по следующей схеме:
Проставьте последовательность стандартных исключений в иерархии родительско-дочерних классов.
” Мы рассмотрим ситуацию создания динамического массива. В программе для обработки исключительных ситуаций создадим динамический массив. Единственная особенность программы в том, что размер создаваемого массива определяется пользователем уже в процессе выполнения программы: при запуске программы, появляется сообщение с просьбой ввести целое число, число считывается, и в соответствии со считанным значением создается динамический массив. Рассмотрим программный код. Каким будет результат, если после выполнения программы ввести отрицательное число.
”
” В представленной программе используются throw, try и catch вместе. Результат выполнения программы следующий: We caught an int exception with value -1. Continuing our way! Опишите как работают блоки.
”
Чтобы в блоке try сгенерировать исключительную ситуацию, нужно использовать оператор throw. Оператор throw может быть вызван внутри блока try или внутри функции, которая вызывается из блока try. Общая форма оператора throw: throw исключение; В результате выполнения оператора throw генерируется исключение некоторого типа. Это исключение должно быть обработано в блоке catch. Рассмотрим пример использования блока try…catch. Демонстрируется использование блока try…catch для обработки выражения. В данном выражении, в трех случаях может возникнуть исключительная ситуация: – корень из отрицательного числа a, если a