|
||||
|
8.5 Описания Классов Класс есть тип. Его имя становится typedef-имя (см. #8.8), которое может быть использовано даже внутри самого спецификатора класса. Объекты класса состоят из последовтельности членов. спецификатор_класса: заголовок_класса (* список_членов opt *) заголовок_класса (* список_членов opt public : спсок_членов opt *) заголовок_класса: сост идентификатор opt сост идентификатор opt : public opt typedef-имя сост: class struct union Объекты классов могут присваиваться, передаваться как параметры и возвращаться функциями (за исключением объектов некоторых производных типов, см. #8.5.3). Прочие действия, которые могут быть удобны, может определить пользователь, см. #8.5.11. Структура является классом, все члены которого общие, см. #8.5.9. Объединение является структурой, содержащей в каждый момент только один член, см. #8.5.13. Список_членов может описывать друзей (8.5.10) и члены вида: данные, фунция, класс, перечисление, поле(#8.5.13). Список_членов может также содержать описания, регулирующие видимость имен членов, см. #8.5.9. список_членов: описание_члена список_членов opt описание_члена: спецификаторы_описания opt описатель_члена ; определение_функции ; opt описатель_члена: описатель идентификатор opt : константное_выражение Члены, являющиеся классовыми объектами, должны быть обектами предварительно описанных классов. В частности, класс cl не может содержать объект класса cl, но он может содержать указатель на объект класса cl. Вот простой пример описания структуры: struct tnode (* char tword[20]; int count; tnode *left; tnode *right; *); содержащей массив из 20 символов, целое и два указателя на такие же структуры. Если было дано такое описание, то опсание tnode s, *sp описывает s как структуру данного сорта и sp как указатель на структуру данного сорта. При наличии этих описаний выражение sp-»count ссылается на поле count структуры, на которую указывает sp; s.left ссылается на указатель левого поддерва структуры s; а s.right-»tword[0] ссылается на первый символ члена tword правого поддерва стрктуры s. |
|
||