Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прога экз 2 сем.docx
Скачиваний:
0
Добавлен:
14.12.2025
Размер:
1.99 Mб
Скачать

Вопрос 31. Перегрузка операторов

Второй способ реализации полиморфизма - перегрузка операций. Когда перег­ружается знак операции, компилятор анализирует тип операндов и в зависимости от типа делает выбор.

+, -, *, /, %, =, , +=, -=, *=, /=, &&, ||, ++, —, (), [], new, delete.

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

Основная форма задания функции-операции, являющейся членом класса:

<тип> <имя_класса> :: operator <знак операции> (список аргументов)

{ Операторы, определяющие действия }

Пример:

class Integer {

private: int m_value;

public:

Integer(int i = 0) {

m_value = i; }

int value() {

return m_value; } Integer operator+(const Integer& right) const { return Integer(m_value + right.m_value); } };

Вопрос 32. Основные принципы объектно-ориентированного программирования.

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

Основные понятия: абстракция, инкапсуляция, наследование, полиморфизм, класс, объект, прототип.

Объект – это логическая единица, которая содержит данные и правила (методы) обработки этих данных. В С++ в качестве правил выступают функции, обрабатывающие эти данные. Внутри объекта данные и функции могут быть частными или приватными (private), защищенным (protected) и общими (public).

Прототип — это объект-образец, по образу и подобию которого создаются другие объекты.

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

В терминологии С++ эти абстрактные типы данных называются классами. Концепция классов отражает принцип пакетирования: данные и функции, которые манипулируют этими данными, объединяются в единый пакет; устанавливаются специальные правила доступа к элементам пакета (функциям и данным).

Класс — это тип, описывающий устройство объектов.

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

Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя/ суперкласс) и добавляя, при необходимости, новые свойства и методы.

Вопрос 33. Понятие класса. Инкапсуляция

Класс — шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализация полей-переменных и реализация поведения функций или методов.

Структура объявления класса:

class имя класса{

private; //частные элементы- данные и ф-ции

protected; //защищенные элементы-данные и элементы-функции

public;// общие элементы-данные и функции

} [список объектов];

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

class A{

public:

int a, b; //данные открытого интерфейса

int ReturnSomething(); //метод открытого интерфейса

private:

int Aa, Ab; //скрытые данные

void Do_Something(); //скрытый метод

};

Класс А инкапсулирует свойства Aa, Ab и метод Do_Something(), представляя внешний интерфейс ReturnSomething, a, b.

Соседние файлы в предмете Программирование