- •Лабораторная работа № 4
- •1. Цель работы
- •2. Краткие теоретические сведения
- •2.2. Свойства класса
- •2.3. Методы класса
- •2.4. Специальные методы класса: конструктор и деструктор
- •3. Наследование
- •4. Пример создания иерархии из трех классов
- •4.1 Решение
- •4.2. Программные коды файлов
- •4.3 Результат работы программы
- •9. Контрольные вопросы
Лабораторная работа № 4
ИЗУЧЕНИЕ ОСНОВ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ В СРЕДЕ Microsoft VISUAL C++
1. Цель работы
Целью работы является разработка приложения с использованием принципов объектно-ориентированного программирования в среде Microsoft Visual C++.
2. Краткие теоретические сведения
2.1. Определение класса как типа данных в языке C++
Важнейшие принципы объектно-ориентированного программирования отражены в новом типе данных – class.
Объектно-ориентированный язык программирования характеризуется тремя основными принципами:
Инкапсуляция. Объединение в одном типе данных (класс, объект) переменных и функций для их обработки называется инкапсуляцией.
Наследование. Определение класса и его дальнейшее использование для построения иерархии порожденных классов. Для каждого порожденного класса, относящегося к иерархии, имеется возможность предоставления доступа к функциям и переменным всех порождающих классов.
Полиморфизм. Присваивание одного и того же имени нескольким отличающимся функциям, расположенным в разных классах, принадлежащих одной иерархии классов. При вызове у объекта класса функции с таким именем будет выполнен программный код функции, описанной в классе этого объекта. Если же в классе объекта функция с таким именем не определена, то будет произведено обращение к родительскому классу согласно принципу наследования. Т.е. объекты разных классов одной и той же иерархии будут выполнять различные действия при вызове функции с одним и тем же именем. Этот принцип позволяет видоизменять действия, производимые функцией с данным именем, по мере «развития» классов в пределах иерархии классов.
Класс является абстрактным типом данных, который определяется пользователем и представляет собой модель реального объекта в виде переменных (данных) и функций для работы с ними.
Переменные класса называют свойствами или полями, а функции класса – методами. Свойства и методы называют элементами или членами класса.
Работа с классом должна осуществляться преимущественно через его функции. Эти функции образуют интерфейс между классом и программой. После выполнения описания класса для программиста важно, чтобы он мог использовать класс только через его интерфейс, т.е. через открытые функции, не обращая внимания на реализацию класса.
Синтаксис описания класса выглядит следующим образом:
class имя_класса
{
[private:]
… // описание скрытых элементов
[protected:]
… // описание скрытых элементов
[public:]
… // описание доступных (открытых) элементов
}; // описание класса заканчивается точкой с запятой
Атрибуты доступа private, protected и public регулируют возможность доступа к элементам класса внутри или извне класса. Следовательно, они являются важным инструментом инкапсуляции. Прежде всего, с помощью этих атрибутов может быть ограничен доступ к отдельным членам класса (см. табл. 1).
Таблица 1
Атрибуты доступа к членам класса
Атрибут доступа |
Значение |
public |
Элемент класса может быть доступен из любой точки программы для любого метода, который является элементом данного класса или абсолютно не связан с данным классом. Интерфейс программы описывают в этом разделе |
private |
Элемент класса виден только внутри класса, следовательно, может быть использован только методами того класса, в котором он описан. Используется по умолчанию (если атрибут доступа явно не указан) |
protected |
To же, что и private. Но дополнительно такой элемент класса может быть использован методами классов, производных от данного класса. Если нет производных классов, то private и protected идентичны. |
Действие любого атрибута доступа распространяется до следующего атрибута или до конца описания класса.