R.17.5 Описания класса

R.17.5 Описания класса

спецификация-класса:

 заголовок-класса { список-членов opt }

заголовок-класса:

 служебное-слово-класса идентификатор opt спец-базовых opt

 служебное-слово-класса имя-класса спец-базовых opt

служебное-слово-класса:

 class

 struct

 union

список-членов:

 описание-члена список-членов opt

 спецификация-доступа : список-членов opt

описание-члена:

 спецификации-описания opt список-описателей-членов opt ;

 определение-функции ; opt

 уточненное-имя ;

список-описателей-членов:

 описатель-члена

 список-описателей-членов , описатель-члена

описатель-члена:

 описатель спецификация-чистой opt

 идентификатор opt : выражение-константа

спецификация-чистой:

 = 0

список-базовых:

 спецификация-базовых

 список-базовых , спецификация-базовых

спецификация-базовых:

 полное-имя-класса

 virtual спецификация-доступа opt полное-имя-класса

 спецификация-доступа virtual opt полное-имя-класса

спецификация-доступа:

 private

 protected

 public

имя-функции-преобразования:

 operator имя-типа-преобразования

имя-типа-преобразования:

 список-спецификаций-типа операция-ptr opt

инициализатор-ctor:

 : список-инициализаторов-членов

список-инициализаторов-членов:

 инициализатор-члена

 инициализатор-члена , список-инициализаторов-члена

инициализатор-члена:

 полное-имя-класса ( список-выражений opt )

 идентификатор

имя-функции-оператор:

 operator операция

операция : один из

 new delete

 + - * / % ^& | ~

 ! = ‹ › += -= *= /= %=

 ^= &= |= ‹‹ ›› ››= ‹‹= == !=

 ‹= ›= && || ++ -- , -›* -›

 () []