Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование).docx
Скачиваний:
32
Добавлен:
28.10.2018
Размер:
52.68 Кб
Скачать

20)Определение классов.

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

-Определение класса может одержать один или несколько спецификаторов доступа (public , private , protected)

-На ряду с элементами данных определения класса как правило включает в себя элементы функций .

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

Class vyalov {int n;

Point sovest

Public:vyalov (int t);

Vyalov ();

};

21)Элементы класса.

Элементы класса делятся на 2 категории: данные хранящие информацию о представителе класса и элементы функции , реализующие поведение этих представителей .

Элементы данных классов Си++ не могут быть представителями самого этого класса , не могут объявляться как extern и regiset. Элементы данные могут быть перечислениями , битовыми полями , представителями ранее объявленных классов , указателем или ссылкой на этот класс . Элемент-функция – это функция , прототип которой объявлен внутри тела класса . Тело функции так же может записываться прямо в определении класса. В этом случае вместо прототипа будет заголовок . Такая функция автоматически будет встроенной . Если функция определена вне тела класса , то в заголовке перед именем функции помещается имя класса и операция разрешения видимости

Float kvadrat::proverka

22) Способы доступа к элементам класса .

В Си++ можно ограничить видимость данных и функций класса при помощи специальных меток .

В зависимости от выбранной метки происходит следующее :

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

При метке public элементы данных и функций элементов классов доступны для любых функций программы , в которой имеется представитель класса .

При метке protected элементы данных и функции элементов доступны для функций элементов данного класса и классов производных от него .

Метка – спецификатор доступа применяется ко всем элементам класса , следующего за ней . пока не встретится другая метка или не закончится определение .

23) Конструктор и деструктор.

Специальная функция – элемент класса конструктор вызывается компилятором всегда , когда создается представитель класса . Конструктор является функцией элементом с тем же именем , что и ее класс. Если никаких конструкторов не определено , то компилятор генерирует конструктор по умолчанию , не имеющий параметров . Для конструктора не указывают возвратный тип и он не может возвращать значения . Как правило в теле конструктора инициализируются элементы данных класса , хотя конструктор является обычной функцией и в его теле можно писать все что угодно . Определение конструктора может содержать список инициализации , который определяется :: под заголовка определения функции и содержит элементы данных , разделяющих «,».

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