Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭКЗ_2020_ООП.odt
Скачиваний:
23
Добавлен:
23.06.2020
Размер:
217.5 Кб
Скачать

5. Как связаны lvalue и rvalue ссылки и переменные?

Ссылки l-value могут быть инициализированы только изменяемыми l-values. Ссылки l-value на константные объекты могут быть инициализированы с помощью как l-values, так и r-values. Однако эти значения не могут быть изменены (константы не изменяют свои значения).

Ссылки r-value — это ссылки, которые инициализируются только значениями

r-values.

Ссылка l-value создаётся с использованием одного амперсанда, ссылка r-value создаётся с использованием двойного амперсанда.

Ссылки r-value не могут быть инициализированы значениями l-values.

Ссылки r-value имеют два полезных свойства:

-Они увеличивают продолжительность жизни объекта, которым инициализируются, до продолжительности жизни ссылки r-value (ссылки l-value на константные объекты также могут это делать).

6. Что такое ооп?

Объектно-ориентированное программирование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов.

Принципы ооп: Инкапсуляция, Наследование, Полиморфизм. Абстакция не является основным принципом ооп, но ее часто вспоминают, когда говорят о принципах ооп.

Объект — это сущность, экземпляр класса, которой можно посылать сообщения и которая может на них реагировать, используя свои данные. Данные объекта скрыты от остальной программы.

7. Что подразумевает абстракция с точки зрения ООП?

Абстрагирование это способ выделить набор значимых характеристик объекта, исключая из рассмотрения не значимые  Соответственно, абстракция — это набор всех таких характеристик.

В контексте ООП абстракция — это обобщение данных и поведения для типа, находящегося выше текущего класса по иерархии.

8. Что такое инкапсуляция?

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.

Другими словами инкапсуляция– это механизм контроля доступа.

9. Что такое наследование?

Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом

10. Что такое полиморфизм?

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

В более общем смысле, концепцией полиморфизма является идея “один интерфейс, множество методов“.

Механизм, позволяющий скрыть за интерфейсом общий класс действий

11. Какие существуют виды полиморфизма?

Виды полиморфизма:

- статический (определяется во время компиляции). Перегрузка функций, методов, операторов и т.д.

- динамический (определяется во время выполнения). Содержит виртуальные функции и методы.

- Параметрический.

12. Для чего и на какие файлы производится разбиение программы на С++?

Зачем разбивать программу на файлы?

С небольшими файлами удобнее работать.

Разбиение на файлы структурирует код.

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

Ускорение повторной компиляции при небольших изменениях в отдельных частях программы.

Файлы с кодом на C++ бывают двух типов:

Файлы с исходным кодом (расширение .cpp);

Заголовочные файлы (расширение .h).

13. Что такое union в C++, когда оно может быть применимо?

Объединения - это объект, позволяющий нескольким переменным различных типов занимать один участок памяти. Применяется для экономии памяти, однако это уже не актуально лет 15.

14. Что такое перечисление в C++ и особенности его использования?

Перечисление — это тип данных, где любое значение определяется как символьная константа. Объявить перечисление можно с помощью ключевого слова enum.

Каждому перечислителю автоматически присваивается целочисленное значение в зависимости от его позиции в списке перечисления. По умолчанию, первому перечислителю присваивается целое число 0, а каждому следующему — на единицу больше, чем предыдущему

Можно сомому присвоить значение перечислителю.