Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Объектные выражения

Читайте также:
  1. Вторая глава. Метафора – стилистический прием выражения экспрессивности в художественной литературе
  2. Выражения в PHP
  3. Выражения с переменными
  4. Дать определения и аналитические выражения для волнового сопротивления и добротности.
  5. Использование выражения "прототокос" ("первенец" или "первородный") Павлом
  6. Крылатые слова и выражения.
  7. Манера речи, отдельные слова и выражения помогают понять характер говорящего или пишущего.

Семантика

'

Объектное выражение имеет тип вида ref (<квалифика­ция>). Оно является правилом для получения ссылки на объект. Значением такого выражения является или объект, с которым связана полученная ссылка, или попе.

 

Квалификация

 

Квалификация объектного выражения определяется сле­дующими правилами:

 

· Выражение none квалифицируется фиктивным клас­сом, содержащим все декларированные классы.

 

· Переменная или указатель функции квалифицируется в соответствии с декларацией (или спецификацией) этой переменной (или массива) или декларацией процеду­ры-функции.

 

· Генератор объектов, локальный объект или квалифи­цированный объект квалифицируются классом, идентифика­тор которого следует за символом new, this или qua соответ­ственно.

 

· Условное объектное выражение квалифицируется клас­сом на самом высоком префиксальном уровне, еще охваты­вающим квалификации обеих альтернатив. Если такого класса не существует, то выражение недопустимо.

 

· Любой формальный параметр типа ссылок на объект
квалифицируется в соответствии с его спецификацией неза­висимо от квалификации соответствующего фактического па­раметра.

 

· Квалификация указателя функции с идентификатором
процедуры, являющимся идентификатором некоторой вир­туальной величины, зависит от уровня обращения. Этой квалификацией является квалификация под­ходящей декларации (если таковая имеется), находящейся на наивысшем префиксальном уровне, не превышающем уровня обращения. Если такой подходящей декларации нет, то квалификацией указателя функции является квалифика­ция виртуальной спецификации.

 

Генераторы объектов

Генератор объектов вызывает порождение и исполнение некоторого объекта, принадлежащего указанному в генера­торе классу. Этот объект является новым представителем (экземпляром) соответствующего (сочлененного) тела клас­са. Вычисление генератора объектов состоит в следующем;

 

· порождается объект и вычисляются фактические па­раметры генератора объектов. Передаются параметры-значе­ния и (или) параметры-ссылки; *,,

 

· управление входит в объект через его начальный сим­вол begin, в силу чего объект оказывается работающим
в «прикрепленном состоянии». Вычисление ге­нератора объектов заканчивается* в следующих случаях:

а) когда выполняется основная процедура detach «по по­ручению» порожденного объекта;

б) при выходе из порожденного объекта через его замы­кающий символ end.

Значением генератора объектов является сам объект, по­рожденный в результате вычисления генератора. После вы­числения генератора объект или «самостоятелен» (слу­чай «а»), или «завершен» (случай «б»).

 

Локальный объект

Локальный объект вида this С является допустимым вы­ражением, если оно находится:

1) в теле класса С или в теле подкласса класса С, или

2) в присоединяющем блоке с классом С или с подклас­сом этого класса в качестве квалификации блока.

 

Значение выражения (локальный объект) в некотором данном контексте — это объект, который является (или ко­торый присоединен) наименьшим статически охватывающим экземпляром блока, где локальный объект является допу­стимым выражением. Если такого блока нет, то данное выра­жение (локальный объект) незаконно (в этом контексте). Для экземпляра процедуры или тела класса термин «статически охватывающий» означает «содержащий ее (его) декларацию».

 

Оперативная квалификация

Пусть X представляет какое-либо простое выражение для ссылки, и пусть С и D суть идентификаторы класса, причем D является квалификацией выражения X. Тогда квалифициро­ванный объект X qua С является допустимым объектным вы­ражением при условии, что класс С содержит класс D или является подклассом класса D. В противном случае, т. е. если С и D не принадлежат к одной последовательности пре­фиксов, квалифицированный объект X qua С недопустим. Если значением выражения X является none или объект класса, не содержащегося в классе С, то при вычислении X qua С вы­дается сообщение об ошибке. Во всех других случаях значе­нием X qua С является значение выражения X.


Дата добавления: 2015-07-15; просмотров: 61 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Типы и переменные| Демакияж. Понятие, технология .

mybiblioteka.su - 2015-2024 год. (0.014 сек.)