- Тема 1. Понятие класса и объекта. Данные-члены и функции-члены (методы)
- Тема 2. Конструкторы и деструкторы классов
- Тема 3. Копирование и присваивание для объектов класса
- Тема 4. Принцип наследования и его реализация средствами языка программирования С++
- Тема 5. Виртуальные функции и классы. Множественное наследование
- Тема 6. Классы-контейнеры
- Тема 7. Обработка исключений
В определении класса члены класса с ключевым словом private доступны:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- любой функции программы
- в случае, если вам известен пароль
- методам этого класса
В представленной программе используются throw, try и catch вместе. Результат выполнения программы следующий: We caught an int exception with value -1. Continuing our way! Опишите как работают блоки. @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image027.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- оператор try используется для генерации исключения -1 типа int. Затем блок throw обнаруживает оператор try и перемещает его в соответствующий блок catch, который обрабатывает исключения типа int. Блок catch типа int и выводит соответствующее сообщение об ошибке
- оператор throw используется для генерации исключения -1 типа int. Затем блок try обнаруживает оператор throw и перемещает его в соответствующий блок catch, который обрабатывает исключения типа int. Блок catch типа int и выводит соответствующее сообщение об ошибке
- оператор throw определяет тип объекта для генерации исключения -1 типа int. После чего блок try удаляет оператор throw и инициирует блок catch, который обрабатывает исключения
В C ++ функция может указывать исключения, которые она генерирует, с помощью ключевого слова:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
Важный момент при наследовании - это перегруженные функции - методы класса-потомка. Если в классе-родителе и в его классах-потомках встречаются методы с одинаковым именем, то для объектов класса-потомка, компилятор будет использовать методы именно класса-потомка. Перегруженные методы класса-потомка, могут вызывать методы класса-родителя. В таком случае, важно помнить, что необходимо правильно определить область действия с помощью оператора «::». Иначе, компилятор воспримет это, как вызов функцией самой себя. Наглядно, если бы мы перегрузили в классе функцию - это выглядело бы так. Опишите, что указывает данная запись кода: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image016.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- эта запись указывает компилятору — если значение FirstClass не равно нулю — вызвать метод show_value() класса value. А он, в свою очередь, отобразит это значение на экране
- эта запись указывает компилятору — если значение value не равно нулю — вызвать метод FirstClass класса show_value(). А он, в свою очередь, отобразит это значение на экране
- эта запись указывает компилятору — если значение value не равно нулю — вызвать метод show_value() класса FirstClass. А он, в свою очередь, отобразит это значение на экране
Варианты использования (кроме всего прочего) нужны для:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- получения сведений о проблемах, возникших в программном коде
- того, чтобы узнать, какие в классах могут быть конструкторы
- обеспечения выбора подходящих атрибутов класса
Векторы — это умные массивы. Они занимаются автоматическим размещением себя в памяти, расширением и сужением своего размера по мере вставки или удаления данных. Векторы можно использовать в какой-то мере как массивы, обращаясь к элементам, с помощью привычного оператора []. Случайный доступ выполняется очень быстро в векторах. Также, довольно быстро осуществляется добавление (или проталкиваниновых данных в конец вектора. Когда это происходит, размер вектора автоматически увеличивается для того, чтобы было куда разместить новое значение. Рассмотрим код программы. Выберете, что демонстрирует данный пример. @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image023.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- заполнение данными методом insert(). Метод insert() имеет два параметра: будущее расположение нового элемента в контейнере и значение элемента. Прибавляем две позиции к результату выполнения метода begin(), чтобы перейти к элементу № 2 (третий элемент в контейнере, считая с нуля). Элементы от точки вставки до конца контейнера сдвигаются, чтобы было место для размещения вставляемого. Размер контейнера автоматически увеличивается на единицу
- для создания вектора v используется штатный конструктор вектора без параметров. Как с любыми контейнерами STL, для задания типа переменных, которые будут храниться в векторе, используется шаблонный формат (в данном случае это тип int). Мы не определяем размер контейнера, поэтому вначале он равен 0. Метод push_back() вставляет значение своего аргумента в конец вектора (конец располагается там, где находится самый большой индекс). Начало вектора (элемент с индексом 0), в отличие от списков и очередей, не может использоваться для вставки новых элементов
- если переменной main присвоить значение true, то push_back() никогда не будет удален, память никогда не будет освобождена и произойдет утечка памяти. Однако, если бы push_back() был вектором, то подобное никогда бы и не произошло, так как память освобождалась бы автоматически, при выходе push_back() из области видимости (независимо от того, выйдет ли функция раньше из области видимости или нет). Именно из-за этого, использование std::vector является более безопасным, чем динамическое выделение памяти через оператор v
Виртуальные методы – это один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом, базовый класс определяет способ работы с объектами, и любые его наследники могут предоставлять конкретную реализацию этого способа. Общий шаблон объявления чисто виртуального метода следующий:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- virtual тип_результата имя_метода(список_аргументов)=0; Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода знаком равенства и нулем
- virtual имя_метода(список_аргументов) Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода списком аргументов
- virtual тип_результата (список_аргументов)=0; Метод в классе можно только описать. Другими словами, в классе допустимо указать тип результата метода, программный код и аргументы. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода знаком равенства и нулем
Все контейнерные классы предоставляют …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- виртуальные методы
- стандартизованный интерфейс
- свойства функций
Для работы с очередью вам понадобится знать функции: push(), pop(), front(), back(), empty(). 1) Для добавления в очередь нового элемента нужно воспользоваться функцией — push(). В круглых скобках должно находится значение, которое мы хотим добавить. 2) Если нам понадобилось удалить первый элемент нужно оперировать функцией pop(). В круглых скобках уже ничего не нужно указывать, но по правилам, они должны присутствовать! Эти функции не нуждаются в указании аргумента: empty(), back() и front(). 3) Если вам понадобилось обратиться к первому элементу очереди, то вам понадобится функция front(). 4) Чтобы обратиться к последнему элементу в очереди, вам поможет функция back(). 5) Чтобы узнать, пуста ли очередь, нужно воспользоваться функцией empty(). Если ваша очередь пуста — возвратит true. Если в ней что-то есть — возвратит false. В коде (нижмы использовали все выше перечисленные методы. Выберете, что будет результатом программы: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image025.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- пользователь должен ввести 6 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый, первый элемент (после удаления). Далее, будет выведен на экран последний элемент в очереди
- пользователь должен ввести 7 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый, первый элемент (после удаления). Далее, строка «Очередь не пуста! и «Process returned 0 (0x0) execution time : 0.010 s. Press any key to continue»
- пользователь должен ввести 5 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый первый элемент (после удаления). Далее, строка «Очередь не пуста!»
Если есть два класса, один из которых базовый, а другой - унаследованный от базового, то последовательность вызовов следующая:
Тип ответа: Сортировка
- 1 вызов конструктора базового класса
- 2 вызов конструктора унаследованного класса
- 3 компиляция
Если существует два класса, один базовый, другой унаследованный от базового, то при необходимости вызова, последовательность будет следующая:
Тип ответа: Сортировка
- 1 вызов конструктора базового класса
- 2 вызов конструктора унаследованного класса
- 3 компиляция
Иерархия классов …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- показывает те же взаимоотношения, что и схема организации
- описывает взаимоотношение типа «имеет»
- описывает взаимоотношения типа «является частью»
- показывает те же взаимоотношения, что и наследственное дерево
Исключительные ситуации, возникающие при работе программы, можно разделить на два основных типа:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- простые и сложные
- с данными и без данных
- синхронные и асинхронные
Использование виртуальных функций для полиморфной обработки родственных объектов относят к:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- элементам методологии наследования в ООП
- элементам абстрагирования
- элементам инкапсуляции данных
Как решить вопрос о том, какой из спецификаторов использовать при наследовании? В большинстве случаев, производный класс представляет собой улучшенную или более специализированную версию базового класса. В случае, когда объект производного класса предоставляет доступ как к общим методам базового класса, так и к более специализированным методам своего класса, имеет смысл воспользоваться общим наследованием. Проставьте последовательность создания кода простого наследования: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image014.png
Тип ответа: Сортировка
- 1 в классе были определены только те члены, которые являются общими для всех объектов этого класса
- 2 ввели изменения, что каждый человек (независимо от пола, профессии и т.д.) имеет имя и возраст
- 3 для облегчения сортировки мы добавили в класс метод getName(), дающий доступ к именам из функции
Классическим примером исключительной ситуации в С++ является:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- целочисленное деление на ноль
- создание нового блока кода
- уменьшение памяти
Классы, предназначенные для хранения данных, организованных определенным образом:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … контейнерные классы
- … классы-операторы
- … классы-методы
ключевое слово virtual используется …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … для использования функции как виртуальной
- … для определения функции как виртуальной
- … для объявления функции как виртуальной
Ключевыми элементами методологии объектно-ориентированного проектирования, связанного с наследованием относят: 1) выбор надлежащей совокупности типов; 2) проектирование взаимосвязей между типами и применение наследования для использования общего кода; 3) использование виртуальных функций для полиморфной обработки родственных объектов. Опишите код программы, содержащую наследование: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image015.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в коде описано открытое наследование. В результате данные из базового класса остаются в производном классе
- в коде описано закрытое наследование. В результате данные из производного класса закрыты от данных базового класса
- в коде описано защищенное наследование. В результате данные из базового класса защищены от данных производного класса
Когда используется таблица виртуальных функций?
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … при обработке виртуальных функций добавляют к каждому объекту скрытый элемент
- … при работе с виртуальными методами выделяют указатели
- … при указании на объект
Конструктор — это особый тип метода класса, который автоматически вызывается при создании объекта этого же класса. Деструктор — это специальный тип метода класса, который выполняется при удалении объекта класса. В то время, как конструкторы предназначены для инициализации класса, деструкторы предназначены для очистки памяти после него. Т.о., опишите код программы: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image004.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в коде описывается класс «date», он имеет переменные день и год. Здесь применен деструктор ☐date(). Он удаляет с динамической памяти объект «month»
- в коде описывается класс «day» и «year», данные имеют открытый тип. Здесь применен конструктор ☐date()
- в коде описывается класс «date», он имеет переменные месяц и год. Здесь применен деструктор ☐date(). Он удаляет с динамической памяти объект «month»
Конструктор копирования должен иметь в качестве параметра ссылку, потому что …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- иначе при передаче параметра по значению конструктор будет вызываться рекурсивно
- функция-член класса может иметь в качестве параметра только ссылку
- переменная, передаваемая по ссылке, может быть изменена
Конструкторы подчиняются тем же правилам относительно типов параметров, что и …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- перегруженные функции
- деструкторы
- методы
Контейнеры бывают …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- последовательные и ассоциативные
- простые и множественные
- логические и придуманные
Метод программирования, идея которого была основана на представление программы, как совокупность объектов – это…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- объектно-ориентированное программирование
- структурное программирование
- процедурное программирование
Методу класса всегда доступны данные:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- объекта, членом которого он является
- класса, членом которого он является
- любого объекта класса, членом которого он является
Механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы, и приводят к невозможности дальнейшей отработки программой её базового алгоритма – это:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … обработка исключительной ситуации
- … конструктор копирования
- … вызов функции
Множественное наследование – это наследование, при котором создание производного класса основывается на …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- использовании нескольких непосредственных базовых классов
- использовании одного базового класса
- использовании нескольких непосредственных виртуальных классов
Модификаторы доступа являются ключевыми слова, которые задают параметры доступа для классов, методов и прочих элементов в …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … объектно-ориентированных языках
- … функциональных языках
- … процедурных языках
Мы рассмотрим ситуацию создания динамического массива. В программе для обработки исключительных ситуаций создадим динамический массив. Единственная особенность программы в том, что размер создаваемого массива определяется пользователем уже в процессе выполнения программы: при запуске программы, появляется сообщение с просьбой ввести целое число, число считывается, и в соответствии со считанным значением создается динамический массив. Рассмотрим программный код. Каким будет результат, если после выполнения программы ввести отрицательное число. @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image026.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- this application has requested the Runtime to terminate it in an unusual way. Please contact the application’s support team for more information. terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc
- a part of conditional expression is always true: 0xff. babygrid.cpp 711
- dereferencing of the null pointer 'cond_col' might take place
Набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … библиотека типов данных
- … библиотека стандартных шаблонов
- … библиотека функций
Обработка исключений, возбужденных оператором throw, идет по следующей схеме:
Тип ответа: Сортировка
- 1 завершается выполнение защищенного try-блока: раскручивается стек подпрограмм, вызываются деструкторы для тех объектов, время жизни которых истекает и т.д.
- 2 создается статическая переменная со значением, заданным в операторе throw. Она будет существовать до тех пор, пока исключение не будет обработано. Если переменная-исключение является объектом класса, при ее создании работает конструктор копирования
- 3 выполняется поиск первого из catch-блоков, который пригоден для обработки созданного исключения
Обычно, компилятор автоматически создает конструктор копирования для каждого класса, но в некоторых случаях, программист создает конструктор копирования, называемый:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … явным конструктором копирования
- … неявным конструктором копирования
- … конструктором по умолчанию
Операторы присваивания хранят значение в объекте, указанном левым операндом. Существует два вида операций присваивания:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- простое присваивание, множественное присваивание
- логическое присваивание, составное присваивание
- простое присваивание, составное присваивание
Операция присваивания копированием – это особый вид операции присваивания, используемый для присваивания объектов одного класса друг другу. Является одним из особых членов-функций и генерируется автоматически компилятором в случае, если нет явного объявления программистом. Код, сгенерированный компилятором и выполняет побитовое копирование. Операция присваивания копированием отличается от конструктора копирования тем, что должна очищать члены-данные цели присваивания (и правильно обрабатывать самоприсваивание), тогда как конструктор копирования присваивает значения неинициализированным членам-данным. Опишите работу кода программы: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image011.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- для начала защищаем от неправильного самоприсваивания, затем выделяем «новую» память и копируем элементы. Далее, освобождаем «старую» память и в конце присваиваем значения в «новой» памяти объекту
- для начала используем оператор выбора члена для выбора члена структуры. Затем выделяем новый массив данных, далее удаляем массив, а затем создаем новый
- для начала объявляем переменную типа класса, определяем функцию член. Затем связываем методы с объектами класса, далее возвращаем значения в «новой» памяти объекту
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В данном классе описано два конструктора для возможности создания пустой и некоторой начальной строк. Кроме того, задано два метода: GetString() и SetString(), через которые осуществляется доступ к массиву buff[], являющимся частным элементом класса. Представленный класс описывает минимальный набор функций для работы со строками. С помощью него можно задать какую-либо строку и получить ее, например, для вывода на экран
- задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В данном классе есть один конструктор для возможности создания пустой строки. Кроме того, задано два метода: GetString() и SetString(), через которые осуществляется доступ к массиву buff[], являющимся частным элементом класса. Представленный класс описывает минимальный набор функций для работы со строками. С помощью него можно задать какую-либо строку и получить ее, например, для вывода на экран
- задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В классе описаны конструкторы для возможности создания пустой и некоторой начальной строк. Кроме того, задан один метод: GetString(), через который осуществляется доступ к массиву buff[], являющимся частным элементом класса
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- здесь функция operator++() создает новый объект класса Counter, для использования его в качестве возвращаемого значения. Далее, функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c1 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c2 = ++c1
- здесь функция operator++() создает новый объект класса Counter, названный temp, для использования его в качестве возвращаемого значения. Она сначала увеличивает переменную count в своем объекте, а затем создает объект temp и присваивает ему значение count, то же значение, что и в собственном объекте. В конце функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c1 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c2 = ++c1
- здесь функция operator++() создает новый объект класса Counter, названный temp, для использования его в качестве возвращаемого значения. Она сначала увеличивает переменную count в своем объекте, а затем создает объект temp и присваивает ему значение count, то же значение, что и в собственном объекте. В конце функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c2 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c1 = ++c2
Опишите процесс выполнения конструкторов при порождении из нескольких классов поэтапно.
Тип ответа: Сортировка
- 1 конструктор порожденного класса
- 2 конструкторы членов, являющихся объектами класса
- 3 конструкторы базовых классов в порядке их задания
Определение функции, в которой типу обрабатываемых данных присвоено условное обозначение - это...
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- прототип функции
- шаблон функции
- виртуальный метод
Тип ответа: Сортировка
- 1 указываются значения в классе Child
- 2 прописываются доступы к к члену класса Parent
- 3 класс Parent описывается
- 4 прописывается что класс Child наследуется от Parent
Особый вид оператора присваивания, используемый для присваивания объектов одного класса друг другу …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- функция
- оператор сложения
- оператор присваивания
Особый вид оператора, используемый для присваивания объектов одного класса друг другу – это…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … оператор присваивания
- … оператор сложения
- … оператор деления
Перегрузка методов это механизм, который позволяет создавать несколько методов с одним и тем же именем. В результате создается иллюзия, что можно вызывать метод с разными аргументами. Перед Вами код перегрузки функции. Выберите правильное описание работы кода. @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image019.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в данном примере описывается одна версия функции show().Функция не возвращает результат. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
- в данном примере описывается одна версия функции show(). У функции текстовый аргумент. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
- в данном примере описывается две версии функции show(). В одном случае функция описана без аргументов. Во втором случае у функции текстовый аргумент. Функция не возвращает результат в обоих случаях. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в этом классе два скрытых поля – health и ammo, получить значения которых извне можно с помощью методов get_health() и get_ammo()
- в этом классе четыре скрытых поля – int x, int y, int scale, int position, получить значения которых извне, можно с помощью методов void draw
- в этом классе одно скрытое поле – health, получить значения которых извне, можно с помощью метода int get_ammo()
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- код выведет на экран Hello world;. Согласно стандарту, выбор одной из перегруженных функций осуществляется по правилу «Наиболее подходящей функции»
- код выведет на экран int:1 bool:1 bool:1. . "Hello world" имеет тип const char* и приведение его к POD-типу bool целесообразней чем к типу std::string
- код ничего не выведет на экран. Приведения типов нет
Последовательные контейнеры …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- обеспечивают хранение конечного количества однотипных величин в виде непрерывной последовательности
- обеспечивают быстрый доступ к данным по ключу
- обеспечивают доступ к конструкторам
Тип ответа: Сортировка
- 1 определение переменных
- 2 вывод на экран
- 3 увеличение значения
- 4 вывод на экран значений с1, с2
Тип ответа: Сортировка
- 1 перегрузка оператора присваивания
- 2 проверка на самоприсваивание
- 3 выполнение копирования значений
- 4 возвращаем текущий объект
Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка») - это правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- деструкторы, конструкторы, оператор присваивания
- деструкторы, методы, функции
- конструкторы, классы, объекты
Предположим, что класс Derv является частным производным класса Base. Мы определяем объект класса Derv, расположенный в функции main(). Через него мы можем получить доступ к:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- членам класса Derv, объявленным как public
- членам класса Derv, объявленным как protected
- членам класса Derv, объявленным как private
- членам класса Base, объявленным как public
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- на экран выведется «C»
- на экран выведется строка «Compiler Error», т.к. компилятор увидит ошибку в строке 1
- на экран выведется «B»
- на экран выведется строка «Garbage Value», т.к. компилятор не сможет запустить конструктор
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- на экран выведется «0», т.к. деструктор удалит все значения переменной
- на экран выведется «Compiler Error in line cout << t.getX() << " ";», т.к. в компиляторе ошибка в строке «cout<
- на экран выведется «Compiler Error in line cout << t.getY();», т.к. в компиляторе ошибка в строке «cout<
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- на экран выведется «Garbage Values»
- на экран ничего не выведется
- на экран выведется «Compiler Error in line cout << t.getX() << " ";»
- на экран выведется «Compiler Error in line cout << t.getY();»
При выполнении операции присваивания между существующими объектами одного типа вызывается …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор по умолчанию
- конструктор копирования
- в этом случае никакой конструктор не вызывается
При множественном наследовании может сложиться ситуация, когда один и тот же базовый класс наследуется (через разные цепочки наследования) в производном классе несколько раз. Обычно, в этом ничего хорошего нет, т.к. нередко такие ситуации приводят к ошибкам. С другой стороны, совсем избежать подобных ситуаций бывает проблематично. Выход состоит в том, чтобы при создании цепочки наследования, использовать виртуальные базовые классы. Перед Вами код. Выберите, какой будет результат кода. @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image020.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- Base NonVirtual called. Derived Virtual called
- Base NonVirtual called. Base Virtual called. Base NonVirtual called
- Base NonVirtual called. Base Virtual called. Base NonVirtual called. Derived Virtual called
При описании нового объекта с инициализацией другим объектом этого же типа вызывается …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор по умолчанию
- конструктор копирования
- конструктор с параметром-объектом
Тип ответа: Сортировка
- 1 с помощью метода push_back число заносится в вектор, размер которого увеличивается автоматически
- 2 организуется цикл до конца файла, в котором из него считывается очередное целое число
- 3 для создания вектора v применяется конструктор по умолчанию
- 4 записывается соответствующая специализация шаблона vector — vector
Проставьте историческую последовательность: как после появления объектно-ориентированного программирования развивалось это направление:
Тип ответа: Сортировка
- 1 компонентное программирование
- 2 прототипно-ориентированное программирование
- 3 класс-ориентированное программирование
Проставьте открытия в программировании в исторической последовательности:
Тип ответа: Сортировка
- 1 ткацкий станок с перфокартами
- 2 аналитическая машина
- 3 первая программа для аналитической машины
- 4 объектно-ориентированное программирование
Тип ответа: Сортировка
- 1 заменить новыми значениями
- 2 вывести содержимое
- 3 создать вектор
- 4 внести данные в конец вектора
Тип ответа: Сортировка
- 1 создаем объект c класса C
- 2 указываем rParent ссылаться на часть A объекта c
- 3 вызываем метод rParent.getName()
- 4 вызываем rParent.GetName(), что приводит к вызову A::getName()
Проставьте последовательность работы конструкций исключительных ситуации:
Тип ответа: Сортировка
Проставьте последовательность стандартных исключений в иерархии родительско-дочерних классов.
Тип ответа: Сортировка
- 1 std:logic_failure
- 2 std:exception
- 3 std:domain_error
Проставьте последовательность функций классов-контейнеров в языке C++
Тип ответа: Сортировка
- 1 создание пустого контейнера (через конструктор)
- 2 удаление объекта из контейнера
- 3 добавление нового объекта в контейнер
- 4 доступ к сохраненным объектам
- 5 просмотр количества объектов, находящихся на данный момент в контейнере
- 6 очистка контейнера от всех объектов
- 7 сортировка объектов/элементов (не всегда)
Проставьте создание языков программирования в исторической последовательности (от старого до нового):
Тип ответа: Сортировка
- 1 C++
- 2 Simula
- 3 Java
- 4 Python
Процесс создания новых классов, называемых наследниками или производными классами, из уже существующих или базовых классов– это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- наследование
- полиморфизм
- абстрагирование
Реакция на исключительное обстоятельство, которое возникает во время работы программы - это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- исключение
- обработка
- уничтожение
Роль наследования в объектно-ориентированном программировании заключается в:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- сохранении информации и обеспечении перегрузок
- сокращении размера кода, упрощении связи между элементами программы
- организации иерархической управляемости
Роль наследования в ООП такая же, как у функций в процедурном языке программирования, т.е. сократить размер кода и упростить связи между элементами программы. В определенных ситуациях могут появиться некоторые проблемы, связанные со множественным наследованием. Рассмотрим наиболее общую проблему. Допустим, что в обоих базовых классах существуют методы с одинаковыми именами, а в производном классе метода с таким именем нет. Рассмотрим пример. Как в этом случае объект производного класса определит, какой из методов базовых классов выбрать? @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image017.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- проблема решается путем использования оператора разрешения, определяющего класс, в котором находится метод. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу A, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу B, Б
- проблема решается путем использования перегрузки функций. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу С, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу A
- проблема решается путем использования оператора наследования. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу B, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу C
Синтаксис наследования выглядит так:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- class имя: тип_наследования имя_базового_класса {// программный код производного класса}
- classname имя: имя_базового_класса {// программный код производного класса}
- class имя: тип_наследования {// программный код производного класса}
Специальная функция класса, которая вызывается при создании нового объекта этого класса и предоставляет возможность инициализировать объекты во время их создания и гарантировать, что все данные члены будут иметь корректные значения это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор
- … деструктор
- … процедура
Специальный конструктор в языке программирования C++, и в некоторых других языках программирования, применяемый для создания нового объекта, как копии уже существующего:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор копирования
- конструктор по умолчанию
- именованный конструктор
Специальный метод без параметров, имя которого состоит из символа ~ и имени класса это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … конструктор
- … деструктор
- … процедура
Стек – это динамическая структура сохранения данных, которая работает по принципу «последний пришел — первый вышел» (Last-In First-Out). В стеке добавление новых элементов и удаление существующих элементов производится с одного конца, который называется вершиной стека. Организация данных с помощью стека эффективна, когда нужно реализовать: обмен данными между методами приложения с помощью параметров; синтаксический анализ разнообразных выражений. Рассмотрим пример. Выберете, что будет результатом программы: @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image024.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5. Далее, выведется строка – «Process returned 0 (0x0) execution time: 0.010 s. Press any key to continue
- программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 9. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5
- программа попросит ввести пять любых целых чисел. Например: 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение добавления верхнего элемента. Затем, опять будет указан новый верхний элемент стека. Далее выведется строка – «Process returned 0 (0x0) execution time : 0.010 s. Press any key to continue
Структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
Сущности, использующиеся для получения доступа к отдельным данным в контейнере.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- итераторы
- классы
- переменные
Тип ответа: Сортировка
- 1 пишем значение переменной количества часов преподавателя
- 2 пишем фамилию имя отчество учителя
- 3 пишем вывод фамилии имени отчества учителя
- 4 пишем вывод «Количества часов:»
Указателем базового класса можно воспользоваться для …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- определения виртуального метода
- указания на объект производного класса
- защиты объекта производного класса
Установите последовательность создания конструктора:
Тип ответа: Сортировка
- 1 прописывается конструктор
- 2 указываются аргументы
- 3 запускается компиляция
Установите соответствие между операторами и их значениями:
Тип ответа: Сопоставление
- A. =
- B. *=
- C. /=
- D. сохранение значения второго операнда в объект, указанный первым операндом
- E. умножение значения первого операнда на значение второго операнда, сохранение результата в объект, указанный первым операндом
- F. деление значения первого операнда на значение второго операнда, сохранение результата в объект, указанный первым операндом
Установите соответствие между операторами и их значениями
Тип ответа: Сопоставление
- A. ^=
- B. &=
- C. >>=
- D. выполнение операции побитового исключающего ИЛИ для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
- E. выполнение операции побитового И для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
- F. сдвиг значения первого операнда вправо на количество битов, заданное значением второго операнда; сохранение результата в объект, указанный первым операндом
Установите соответствие между операторами и их значениями
Тип ответа: Сопоставление
- A. +=
- B. -=
- C. <<=
- D. сложение значения первого операнда со значением второго операнда, сохранение результата в объект, указанный первым операндом
- E. вычитание значения второго операнда из значения первого операнда, сохранение результата в объект, указанный первым операндом
- F. сдвиг значения первого операнда влево на количество битов, заданное значением второго операнда, сохранение результата в объект, указанный первым операндом
Установите соответствие между открытиями и их создателями:
Тип ответа: Сопоставление
- A. первая программа для аналитической машины
- B. аналитическая машина
- C. ткацкий станок с перфокартами
- D. Ада Августа Лавлейс
- E. Чарльз Беббидж
- F. Жозеф Мари Жаккар
Установите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. полиморфизм
- B. инкапсуляция
- C. абстрагирование
- D. наследование
- E. метод направлен на определение точки, где единое управление лучше разделить, или наоборот, собрать воедино разделённые управления
- F. принцип быстрой и надёжной организации своей иерархической управляемости
- G. принцип, в котором учитывается все самое важное в предмете, для моделирования и решения конкретной задачи
- H. принцип создания класса, на базе уже существующего, при этом, у нас есть возможность пользоваться функционалом (свойствами и методамбазового
Установите соответствия между языками и видами программирования.
Тип ответа: Сопоставление
- A. С++
- B. 1C
- C. Haskell
- D. объектно-ориентированное программирование
- E. процедурное программирование
- F. функциональное программирование
Что реализуется через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны?
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- полиморфизм
- абстрагирование
- инкапсуляция
Чтобы в блоке try сгенерировать исключительную ситуацию, нужно использовать оператор throw. Оператор throw может быть вызван внутри блока try или внутри функции, которая вызывается из блока try. Общая форма оператора throw: throw исключение; В результате выполнения оператора throw генерируется исключение некоторого типа. Это исключение должно быть обработано в блоке catch. Рассмотрим пример использования блока try…catch. Демонстрируется использование блока try…catch для обработки выражения. В данном выражении, в трех случаях может возникнуть исключительная ситуация: - корень из отрицательного числа a, если a<0, - корень из отрицательного числа b, если b<0, - деление на 0, если b=0. Поэтому, в блоке try…catch, нужно обработать эти три случая. Текст программы типа Console Application следующий. Какой будет результат программы? @https://lms.synergy.ru/user_files/21/tests/00000000-0000-0001-0001-000000020018/image028.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Division by 0»
- если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Negative root»
- если пользователь введет a = 2 и b = 0, то ответ ошибки будет следующим: «Out of range»
Шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализация полей-переменных и реализация поведения функций или методов – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов