Инкапсуляция позволяет скрыть какие-то данные и функции внутри класса. Данных может быть столько, сколько нужно и сколько позволяет память. Однако их может и не быть вообще.
Попытка инициализировать данные внутри объявления класса ошибочна. Класс - это не объект и память для него не будет выделена до тех пор, пока не будет создан экземпляр этого класса. Данные, объявленные в классе, следует рассматривать как поля структуры, а не как переменные. Как и для структуры, нужно объявить объект с типом (именем) класса, а затем инициализировать данные члены.
Данные-члены создаются с тем же классом памяти, что и объект класса. Если объект объявляется автоматическим, то все его данные будут автоматическими. Статические данные-члены являются исключением из этого правила: когда создаётся объект со статическими членами (данными), память под них невыделяется, потому что это приведёт к появлению нескольких копий статических данных. Если в классе данное объявляется статическим (static), то все экземпляры класса будут разделять одно и тот же данное-член. Статический член данных, как и глобальная переменная, размещается в фиксированной области памяти на стадии компоновки. Для объявления или инициализации статических данных используется в точности та же нотация, что и для глобальных переменных (ехtern ).
Если данное-член класса объявлен как статический, то компоновщик выделяет под него память только один раз, когда производится объявление этого данного в классе. Поэтому инициализировать статическую переменную можно в момент её объявления. Статические элементы всегда остаются статическими.
Привилегии доступа к статическим данным отличаются от привилегий доступа к нестатическим. К статическому данному необходимо всегда обращаться через имя класса и оператор разрешения области видимости (:: ), независимо от того, объявлен он как приватный, общедоступный или защищенный.
|
Оператор разрешения области видимости (::) – используется для доступа к данным- членам:
- через функцию-член класса;
- через класс, объявленный дружественным для данного класса.
Для доступа к открытым членам класса используется оператор точка (.) с объектами или оператор (->) с указателями на объекты класса.
Для доступа к закрытым и защищённым членам класса используются функции-члены открытой части класса.
Ход работы
1 Изучить теоретические сведения.
2 В соответствии с индивидуальным заданием разработать структуру класса, сделать определение функций-членов класса (class), разработать алгоритм использования объектов и указателей на объекты класса для доступа к данным и функциям- членам. Проверить возможность доступа к членам класса в разделах private, public, protected. В разделах объявить минимум по одному данному-члену, включая статические (static).
3 Набрать программу на компьютере.
4 Устранить ошибки.
5 Получить результат.
6 Оформить отчет.
7 Подготовиться к защите лабораторной работы, изучив контрольные вопросы по данной теме.
Индивидуальное задание к лабораторной работе №20.
Составить программу для объявления и использования данных типа класс согласно индивидуальному заданию, приведенному в таблице 20.1.
Таблица 20.1 - индивидуальные задания
Базовый класс | Производный класс | Производный класс |
1 источник света | костёр | фонарь |
2 хранилище | зернохранилище | элеватор |
3 грузоподъемное средство | кран | мостовой кран |
4 животное | кот | кот сиамский |
5 растение | дерево | дуб |
6 транспортное средство | самолет | дельтоплан |
7 транспортное средство | автомобиль | легковой автомобиль |
8 транспортное средство | корабль | танкер |
9 топливо | нефть | бензин |
10 средство информации | книга | журнал |
11 хранилище информации | жесткий диск | дискета |
12 средство визуализации | электронно-лучевая трубка | жидкокристаллический экран |
13 источник тепла | солнце | костер |
14 источник тока | батарея | аккумулятор |
15 продукты | овощи | картофель |
16 таймер | часы | часы наручные |
17 морская фауна | рыба | колбаса |
18 пишущее устройство | ручка | шариковая ручка |
19 режущее устройство | нож | ножницы |
20 продукты | хлеб | батон |
21 инструмент | напильник | надфиль |
22 металл | сталь | закалённая сталь |
23 мебель | кресло | стул |
24 здание | цех | кузнечный цех |
25 стройматериалы | кирпич | фасонный кирпич |
26 одежда | куртка | пиджак |
27 устройство передачи крутящего момента | редуктор | червячный редуктор |
28 обувь | ботинки | кеды |
29 головной убор | шапка | папаха |
30 погода | дождь | ураган |
31 спорт инвентарь | лыжи | санки |
32 средство связи | телефон | радиотелефон |
33 колесо | зубчатое колесо | косозубое колесо |
34 водоём | море | водохранилище |
35 оптический прибор | труба | бинокль |
36 флора | лес | куст |
37 посуда | кастрюля | тарелки |
|