Класс есть тип. Его имя используется как имя-класса ($$R.9.1), т.е.становится зарезервированным словом в его области видимости. имя-класса: идентификатор Для образования конструкции имя-класса используются спецификации-классаи спецификации-сложного-типа ($$R.7.1.6). Объект класса состоит изпоследовательности (возможно пустой) членов. спецификация-класса: заголовок-класса { список-членов opt } заголовок-класса: служебное-слово-класса идентификатор opt спец-базовых opt служебное-слово-класса имя-класса спец-базовых opt служебное-слово-класса: class struct union Имя класса можно использовать в качестве конструкции имя-классадаже в списке-членов самого этого класса. Обычно спецификацию-классаназывают описанием класса. Класс считается определенным, как толькопоявится спецификация-класса, несмотря на то, что его функции-членымогут быть еще неопределены. Объекты пустого класса имеют ненулевой размер. Объекты типа класс можно присваивать, передавать в качествепараметров функций и получать в качестве значения, возвращаемогофункцией (за исключением объектов тех классов, для которых копированиеограничено, см. $$R.12.8). Другие возможные операции, такие, каксравнение на равенство, могут определяться пользователем, см. $$R.13.4. Структурой называется класс, описанный со служебным-словом-классаstruct; ее члены и базовые классы ($$R.10) считаются общими поопределению ($$R.11). Объединением называется класс, описанный сослужебным-словом-класса union; его члены считаются общими поопределению, и в любой момент времени объединение содержит толькоодин член ($$R.9.5).