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

Определение и объявление класса

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

В связи с тем, что класс языка С++ является обобщением структур языка С его объявления и определения имеют много общего с соответствующими конструкциями для языка С.

Первое отличие классов языка С++ от структур языка С, на котором следует остановиться, состоит в следующем. Для объявлений и определений структур языка С используется зарезервированное слово struct. Для этих же целей в классе языка С++ используются три зарезервированные слова. Прежде всего, это новое зарезервированное словоclass. Этого слова нет в языке С. Оно введено в язык С++ специально для работы с классами. Однако наряду с этим зарезервированным словом допустимо использовать два зарезервированные слова языка С. Речь идет о словахstructиunion.

Отметим, что классы, построенные с применением зарезервированных слов classиstruct, имеют одинаковые возможности. Отличия между ними состоит в трактовке прав доступа по умолчанию. Классы, построенные с применением зарезервированного словаunion, располагают существенно меньшими возможностями. Их следует применять в тех же ситуациях, что и объединение (union) языка С, когда необходима экономия памяти.

Из изложенного выше следует, что объявление класса должно иметь следующий формат:

<α> <β>;

Здесь α – одно из следующих зарезервированных слов :

  • class,

  • struct,

  • union.

β – имя класса (идентификатор).

Примеры объявлений классов.

class stack;

structcomplex;

Определение класса языка С++ имеет много общего с определением структуры языка С. Оно, так же как и определение структуры языка С, должно иметь заголовок и тело.

Отметим, что заголовок порожденного класса может иметь дополнительный элемент, называемый базовым списком. Базовый список указывает, от каких базовых классов порождается определяемый класс и задает вид порождения (public,protectedилиprivate).

Таким образом, заголовок класса имеет следующий формат (в квадратных скобках записан необязательный элемент):

<α> <β> [ : <γ>]

Здесь α – одно из следующих зарезервированных слов :

  • class,

  • struct,

  • union.

β – имя класса (идентификатор).

γ – базовый список (необязательный элемент).

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

Члены класса

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

Таким образом, тело класса в общем случае может содержать следующие объявления:

  • переменных,

  • либо прототип, либо определение каждой функции, инкапсулированной в классе,

  • определения или объявления других классов.

  • объявления typedef-синонимов типов.

Соседние файлы в предмете Программирование