Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

1.5. Классы 33

1.5.1 Структура класса

Класс состоит из участников. Участники, которые являются переменными или константами, являются данными

участники (также названный членскими переменными) и участники, которые являются функциями, являются вызванными членскими функциями (также названный методами). Участники данных могут иметь любой тип и могут даже быть самими классами, или указателями или ссылками на классы. Участник func-tions, как правило, действует на членские переменные, и тем самым определяет поведение класса.

Мы начинаем с простого примера, названного Прилавком. Это осуществляет простой прилавок, сохраненный в членском количестве переменной. Это обеспечивает три членских функции. Первая членская функция, вызванная Прилавок, инициализирует прилавок. Второй, названный getCount, возвращает текущую стоимость прилавка. Третий, названный increaseBy, увеличивает стоимость прилавка.

Прилавок класса //простой прилавок

общественность:

Прилавок (); //интервал инициализации getCount (); //получают текущую пустоту количества increaseBy (интервал x); //добавляют x к количеству

частный:

международное количество; //стоимость прилавка

;

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

До сих пор мы только объявили членские функции Прилавка класса. Затем, мы представляем определения этих членских функций. Чтобы ясно дать понять к компилятору, что мы определяем членские функции Прилавка (в противоположность членским функциям некоторого другого класса), мы предшествуем каждому имени функции с Прилавком «спецификатора обзора::».

Прилавок:: Прилавок ()

c o unt = 0;

международный Прилавок:: getCount ()

возвращают количество;

недействительный Прилавок:: increaseBy (интервал x)

учитываются + = x;

//конструктор

//получите текущий подсчет

//добавьте x к количеству

У первой из этих функций есть то же самое имя как сам класс. Это - специальная членская функция, вызванная конструктор. Работа конструктора состоит в том, чтобы инициализировать ценности

34

Глава 1. C ++ Учебник для начинающих членских переменных класса. Функция getCount обычно упоминается как функция «получателя». Такие функции обеспечивают доступ к членам парламента, не занимающим официального поста класса.

Вот пример, как мы могли бы использовать наш простой класс. Мы объявляем новый объект Прилавка типа, названного центром. Это неявно призывает конструктора класса, и таким образом инициализирует стоимость прилавка к 0. Чтобы призвать одну из членских функций, мы используем примечание ctr.function имя ().

Встречный центр;

суд <<ctr.getCount () <<endl; ctr.increaseBy (3); суд <<ctr.getCount () <<endl; ctr.increaseBy (5); суд <<ctr.getCount () <<endl;

Управление доступом

//

// // // // //

случай Прилавка

печатает начальное значение (0) увеличение 3 печатями 3 увеличения 5 печатями 8

Одна важная особенность классов - понятие управления доступом. Участники могут

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

Встречный центр; //центр - случай Прилавка

//... суд <<ctr.count <<endl; //НЕЗАКОННЫЙ - количество частное

Почему участники объявления беспокойства, чтобы быть частным? Мы обсуждаем причины подробно

в Главе 2, когда мы обсуждаем объектно-ориентированное программирование. На данный момент достаточно сказать, что это происходит от желания подарить пользователям чистый (общественный) интерфейс, от которого можно использовать класс, не беспокоя их внутренними (частными) деталями его внедрения. Весь внешний доступ к объектам класса имеет место через общественных участников или общественный интерфейс, как это называют. Синтаксис для класса следующие.

название класса класса

общественность:

общественные участники

частный:

члены парламента, не занимающие официального поста

;

Обратите внимание на то, что, если никакой спецификатор доступа не дан, неплатеж частный для классов и

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