C++.Бархатный путь


Класс. Объявление класса - часть 3


При объявлении объединения требуется детальная информация о внутреннем устройстве этого объединения.

Мы продолжаем формальное определение класса. Теперь рассмотрим синтаксис объявления членов класса.

СписокЧленов ::= ОбъявлениеЧленаКласса [СписокЧленов] ::= СпецификаторДоступа : [СписокЧленов]

ОбъявлениеЧленаКласса ::= [СписокСпецификаторовОбъявления] [СписокОписателейЧленовКласса]; ::= ОбъявлениеФункции

::= ОпределениеФункции [;] ::= КвалифицированноеИмя;

СписокОписателейЧленовКласса ::= ОписательЧленаКласса

::= СписокОписателейЧленовКласса, ОписательЧленаКласса

ОписательЧленаКласса ::= Описатель [ЧистыйСпецификатор] ::= [Идентификатор] : КонстантноеВыражение

ЧистыйСпецификатор ::= = 0

КвалифицированноеИмяКласса ::= ИмяКласса

::= ИмяКласса :: КвалифицированноеИмяКласса

СпецификаторДоступа ::= private ::= protected ::= public

Список членов определяет полный набор членов данного класса. В этом списке объявляются все члены класса. Таковыми могут быть данные, функции-члены, ранее объявленные классы, перечисления, битовые поля, дружественные функции и даже имена типов. Некоторые из перечисленных понятий нам уже знакомы, о других речь ещё впереди. Этот список не подлежит модификации. Он формируется за один раз.

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

ОбъявлениеЧленаКласса ::= [СписокСпецификаторовОбъявления] [СписокОписателейЧленовКласса]; ::= СпецификаторОбъявления ОписательЧленаКласса; ::= СпецификаторТипа Описатель; ::= void Описатель (СписокОбъявленийПараметров); ::= void ff (void);

С другой стороны,

ОбъявлениеЧленаКласса ::= ОпределениеФункции [;] ::= Описатель (СписокОбъявленийПараметров) ТелоФункции ::= ff (void) {int iVal = 100;}

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

ОбъявлениеЧленаКласса ::= [СписокСпецификаторовОбъявления] [СписокОписателейЧленовКласса]; ::= СпецификаторОбъявления ОписательЧленаКласса; ::= СпецификаторТипа Описатель; ::= void Описатель (СписокОбъявленийПараметров); ::= void ff (void);




- Начало -  - Назад -  - Вперед -