Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vodnev.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
122.42 Кб
Скачать

Билет 5

1. Проблема сообщества ОО программистов. Иерархия классов и наследование. Связывание и переопределение методов.

Связывание методов

(Английский термин – Method binding.)

Методы могут быть статическими (static – по умолчанию), виртуальными (virtual) или динамическими (dynamic). Виртуальные и динамические методы могут быть перекрытыми (override) и абстрактными (abstract). Эти спецификаторы (designators) методов играют роль тогда, когда объектом является класс-наследник. Они определяют, какая именно реализация метода будет вызвана в том или ином случае.

Наследование — механизм языка, позволяющий описать новый класс на основе уже существующего (родительского, базового) класса. Класс-потомок может добавить собственные методы и свойства, а также пользоваться родительскими методами и свойствами. Позволяет строить иерархии классов. Является одним из пяти типов ассоциации.

За перелом обратной совместимости, за проблемы портирования и поддержки общего кода для двух мажорных версий.

Переопределение метода (англ. Method overriding) в объектно-ориентированном программировании — одна из возможностей языка программирования, позволяющая подклассу или дочернему классу обеспечивать специфическую реализацию метода, уже реализованного в одном из суперклассов или родительских классов. Реализация метода в подклассе переопределяет (заменяет) его реализацию в суперклассе, описывая метод с тем же названием, что и у метода суперкласса, а также у нового метода подкласса должны быть те же параметры или сигнатура, тип возвращаемого результата, что и у метода родительского класса.

В языке C++ отсутствует ключевое слово super, которое подклассы в языке Java используют для вызова версии метода суперкласса вместо переопределенной. Вместо этого, перед именем родительского или базового класса используется оператор области видимости(public:).

2. Параметризованные классы. Шаблоны в С++.

Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем, ссылка).

Шабло́ны (англ. template) — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).

3. Присваивание в С++.

Операция присваивания в языке программирования C++ обозначается знаком '='. Как и другие операторы в C++, она может бытьперегружена.

Билет 6

1. Основные положения ООП, сформулированные Аланом Кейем.

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

2. Эффективность и полиморфизм. Чистый полиморфизм.

3. Уточнение методов или механизм внутри переопределяемого метода.

Билет 7

1. Вычисления и моделирование в традиционных и ООЯ.

Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия.

2. Полиморфизм в языке программирования. Полиморфная функция. Абстракции низкого и высокого уровней.

В языках программирования и теории типов полиморфизмом называется единообразная обработка разнотипных данных.

Понятие полиморфной переменной

  • Одной из наиболее интересных особенностей объектно-ориентированных языков программирования является тот факт, что фактический тип переменной может не совпадать с типом, заявленным при ее описании.

  • Полиморфная переменная не только хранит данные фактического типа, но и позволяет использовать методы фактического типа.

  • Для обозначения типа, присвоенного переменной при ее описании, будем использовать термин «статический тип»

  • Термин «динамический тип» характеризует тип фактического значения.

  • Переменная, для которой динамический тип не совпадает (точнее, может не совпадать) со статическим, называется полиморфной.

3. Уточнение в С++.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]