Страница:
320 из 357
список_членов: описание_члена список_членов 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.
8.5.1 Статические Члены
Член данные класса может быть static; члены функции не могут. Члены не могут быть auto, register или extern. Есть единственная копия статического члена, совместно используемая всеми членами класса в программе. На статический член mem класса cl можно ссылаться cl:mem, то есть без ссылки на обект. Он существует, даже если не было создано ни одного обекта класса cl. Для статического члена не может задаваться никакой инициализатор, и он не может быть членом класса с конструктором.
8.5.2 Функции Члены
Функция, описанная как член, (без спецификатора friend (#8.5.10)) называется функцией членом и вызывается с исползованием синтаксиса члена класса (#7.1). Например:
struct tnode (*
|< Пред. 318 319 320 321 322 След. >|