
- •Билет 1
- •3. Замещение методов и принцип подстановки.
- •Билет 2
- •1. Принцип Чёрча. Гипотеза Ворфа. Гипотеза Сапира-Ворфа. Формальные модели вычислений (модели Чёрча, Поста, Маркова, Тьюринга, Клини и другие).
- •2. Итераторы. Объекты-функции. Будущее ооп.
- •Билет 5
- •Билет 8
- •Понятие полиморфной переменной
- •3. Формы наследования. Порождение подкласса для комбинирования.
- •Формы наследования
- •Билет 19
- •Билет 20
- •Билет 21
- •Билет 22
- •3. Программные компоненты. Их разновидность. Основная целевая направленность.
- •Билет 23
- •1. Восстановление памяти. Указатели. Эффективное средство работы с динамической информации. Создание неизменяемого экземпляра объекта.
- •Билет 25
- •1. Наследование и принцип подстановки. Отношения: быть экземпляром и включать как часть.
- •Билет 26
- •3. Издержки наследования.
- •Билет 27
- •1. Противопоставление композиции и наследование. Преимущества и недостатки двух подходов.
- •Билет 28
- •Билет 29
- •Билет 30
- •3. Интерфейс и реализация.
Билет 20
1. Поведение и состояние. Экземпляры и классы. Зацепление и связность. Интерфейс и реализация модуля, их важнейшая идея в программировании. Принципы Парнаса.
Экземпляр класса (англ. instance) — это описание конкретного объекта в памяти. Класс описывает свойства и методы, которые будут доступны у объекта, построенного по описанию, заложенному в классе. Экземпляры используют для представления (моделирования) конкретных сущностей реального мира.
Зацепление (cohesion) (или более точно, функциональное зацепление) — это мера связности и сфокусированности обязанностей класса.
Свя́занность (англ. coupling) или зави́симость (англ. dependency) — характеристика взаимосвязи модуля с другими модулями. Это степень, в которой каждый программный модуль полагается на другие модули.
Интерфе́йс (англ. interface — сопряжение, поверхность раздела, перегородка) — совокупность возможностей, способов и методов взаимодействия двух систем(любых, а не обязательно являющиеся вычислительными или информационными), устройств или программ для обмена информацией между ними, определённая их характеристиками, характеристиками соединения, сигналов обмена и т. п. В случае, если одна из взаимодействующих систем — человек, чаще говорят лишь о второй системе, то есть об интерфейсе той системы, с которой человек взаимодействует.
Идеи Парнаса в терминах объектов звучит так:
объявление класса должно обеспечивать клиента информацией, необходимой для успешной работы, и никакой другой;
методам должна быть доступна вся информация, необходимая для выполнения их обязанностей, и никакая другая.
При́нцип откры́тости/закры́тости — принцип объектно-ориентированного программирования, устанавливающий следующее положение: «программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения»;[1] это означает, что такие сущности могут позволять менять свое поведение без изменения их исходного кода.
2. Классы и методы в С++.
Класс — разновидность абстрактного типа данных в объектно-ориентированном программировании (ООП), характеризуемый способом своего построения.
Описание класса начинается с ключевого слова class. Список членов класса определяет собственные элементы класса. При описании членов классов возможно указание атрибутов управления доступом к элементам классов. Такими атрибутами являются:
public – члены класса видны извне класса;
private – соответствующие элементы могут использоваться только внутри класса;
protected – члены класса могут использоваться внутри класса и внутри порожденных классов.
По умолчанию элементы класса имеют тип private.
Метод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.
Как и процедура в процедурном программировании, метод состоит из некоторого количества операторов для выполнения какого-то действия, имеет набор входных аргументов и возвращаемое значение.
3. Использование общего кода.
При создании проектов веб-сайтов среда Visual Studio позволяет создавать общий код в файлах класса, которые затем можно использовать в страницах приложения без компиляции файлов класса.