1.Объекты и классы
Объектом
называется совокупность разного типа данных и функций, которые их обрабатывают.
Компоненты объекта:
Компоненты объекта:
- члены-данные
- члены-функции
Под классом понимается множество объектов, связанных общностью структуры и поведения. Таким образом, класс можно сравнить с шаблоном, по которому создаются объекты.
В С++ класс – это структурированный тип, включающий в себя в качестве элементов типизированные данные и функции, применяемые по отношению к этим данным
Имя класса
FourAngel
Члены-данные
- координаты вершин,
- стороны,
- периметр,
- площадь.
Члены-функции:
- метод ввода координат вершин,
- расчет длин сторон,
- расчет площади,
- расчет периметра.
Затем в том же файле (или в другом) производится описание объявленных функций – членов класса.
Так как прототипы всех методов уже указаны в определении класса, то порядок описания членов-функций может быть любой. Члены-функции могут вызывать друг друга и обращаться к любым членам-данным этого класса.
На рис.: член-функция Init класса FourAngel вводит члены-данные x1, y1, x2… этого класса:
В отличие от
определения обычной функции здесь имеются спецификации принадлежности к
определенному кассу с использованием операции разрешения области видимости (::)
В функции main
описываются конкретные экземпляры класса
(объекты) и сама программа получается очень компактной:
Здесь
• Созданы
три объекта –четырехугольника f1,f2,f3, на них автоматически будет выделена
память.
• Поля
(координаты) объектов f1,f2 определены с помощью вызова
функции Init() для этих
объектов;
• Рассчитаны
длины сторон первого четырехугольника.
• Рассчитана
площадь первого четырехугольника.
Обратите внимание на особенности
вызова:
- функций-членов типа void (вызов отдельным оператором)
- функций-членов других типов (в операторах вывода на экран и в арифметических операциях ). Например, можно написать:
S=
f1.Ploshad()+ f2.Ploshad()
2. Инкапсуляция
Инкапсуляция – комбинирование и
сокрытие внутри объекта данных и функций, которые их обрабатывают.
Инкапсуляция
позволяет разработчику в силу различных причин скрыть от пользователя детали
реализации объекта и самому в то же время делать меньше ошибок, так как доступ
к членам - данным объектов обычно имеют лишь функции класса.
В С++ используются три спецификатора доступа:
• Private (сокрытый) -
Доступ извне запрещен
• Public (общедоступный) - Доступ извне разрешен
• Protected (защищенный)
- Доступ разрешен только
наследникам
Один и тот же
спецификатор доступа может появляться при описании класса несколько раз.
В описанном нами
примере класса все поля являются скрытыми (при попытке обращения –ошибка), а
все методы –доступными извне (можно вызывать).
Для доступа к значениям скрытых полей
используется следующий прием:
3.Конструкторы
Каждый класс имеет
один или несколько конструкторов, которые вызываются автоматически при создании
объекта и в этом смысле не являются методами класса. Конструктор можно описать
явно и использовать для задания начальных значений полям.
Основные отличия
конструктора от методов класса:
• Имя
конструктора совпадает с именем класса;
• Конструктор
не может иметь возвращаемого значения.
Можно определить
несколько конструкторов с разным количеством параметров. Это позволит
по-разному задавать значения полей создающихся объектов- экземпляров
класса.
4. Наследование
•
Наследование
-возможность использования уже введенных объектов для создания других объектов.
Каждый из потомков наследует определение данных и методов своего “родителя”-
базового класса.
Общий вид определения класса-потомка:
Class Имя_потомка : ключ_доступа Имя_базового_ класса
{
Дополнительные поля данных;
Дополнительные методы;
};
Общий вид определения класса-потомка:
Class Имя_потомка : ключ_доступа Имя_базового_ класса
{
Дополнительные поля данных;
Дополнительные методы;
};
Пример определения наследника:
В классе-потомке Stud определяются дополнительные данные:
- члены класса массивы grupp и ozenki;
- конструктор и дополнительная член-функция SrBall,
- переопределяется функция Show.
После этого можно описать
члены-функции класса-родителя и класса-наследника (с указанием имен классов):
Далее в программе можно создавать экземпляры
объекта-родителя Chel –объект а и объекта-наследника Stud –объект с:
5. Общие сведения о библиотеке MFC
MFC -это
базовый набор (библиотека) классов, написанных на языке С++ для упрощения
процесса программирования для Windows.
Библиотека содержит многоуровневую иерархию классов,
насчитывающую около 200 членов. Они дают возможность создавать
Windows-приложения на базе объектно-ориентированного подхода.
Преимущества работы с MFC:
- Упрощение и уменьшение длины программного кода
- Возможность многократного использования одного и того же кода. Так как библиотека содержит много элементов, общих для всех Windows-приложений, которые можно наследовать.
- Упрощение взаимодействия с прикладным программным интерфейсом (API) Windows. Любое приложение взаимодействует с Windows через API, который содержит несколько сот функций.
- С каждым MFC-приложением связывается определяющий его на верхнем уровне объект-приложение theApp, принадлежащий классу, производному от CWinApp.
- Объект-приложение theApp –это то, что Windows запускает при старте программы.
- Разработка приложения состоит в том, что программист берет из библиотеки MFC классы CWinApp, CFrameWnd, CDocument, CView и т.д. и строит производные классы. Приложение создается как совокупность объектов этих производных классов. Каждый объект несет в себе как наследуемые черты, определяемые базовыми классами, так и новые черты, добавленные программистом.
Комментариев нет:
Отправить комментарий