спецификация-класса: заголовок-класса { список-членов 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 + - * / % ^ & | ~! = < > += -= *= /= %= ^= &= |= << >> >>= <<= ==!= <= >= && || ++ --, ->* -> () []