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

2. Объектно-ориентированное программирование

Основным отличием языка СИ++ от языка СИ является наличие в нем средств ООП. Базовые понятия ООП: это инкапсуляция, наследование, полиморфизм. В отличие от Паскаля, вместо понятия «объектный тип данных», в СИ++ используется понятие «класс».

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

ООП рассматривает вычисления как моделирование поведения. То, что модели­руется, является объектами, представленными вычислительной абстракцией.

КЛАСС – это структурированный тип, включающий в себя в качестве элементов типизированные данные и функции, применяемые по отношению к этим данным.

Таким образом, инкапсуляция (объединение параметров и методов), заложена в составе элемента класса: типизированные данные- это параметры, а методы реализованы через функции.

ОБЪЕКТ – это экземпляр класса.

ИНКАПСУЛЯЦИЯ – свойство класса, при котором класс замкнут, а его реализация (т.е. набор команд, элементов), скрыта от основной части программы.

НАСЛЕДОВАНИЕ – 2-е фундаментальное понятие ООП. Механизм наследования позволяет формировать иерархии классов. Класс наследник получает свойства класса-предка.

ПОЛИМОРФИЗМ - допускает использование функций с одним и тем же именем применительно к разным наборам аргументов и операндов, а также к разным их типам в зависимости от контекста программы. В СИ++ полиморфизм реализован через механизм перегрузки. Т.е внутри класса допускается существование нескольких функций с одинаковым именем, но различающихся типом результатов и наборами формальных параметров. Компилятор выбирает подходящий вариант в зависимости от количества и типов аргументов.

Преимущества объектно-ориентированного программирования

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

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

Еще одной важной концепцией ООП является поощрение повторного использова­ния кода с помощью механизма наследования. Суть этого механизма — получение но­вого производного класса из существующего, называемого базовым. При создания про­изводного класса базовый класс может быть дополнен или изменен. Таким путем могут создаваться иерархии родственных типов данных, которые используют общий код.

При использовании ООП решение будет более модульным, следовательно, более понятным и про­стым для модификации и обслуживания. Кроме того, такое решение будет более при­годно для повторного использования. Например, если в программе нужен стек, то он легко заимствуется из существующего кода. В обычном процедурном языке програм­мирования такие структуры данных часто «вмонтированы» в алгоритм и не могут экспортироваться.

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