Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Декларации класса



Формальное описание синтаксической диаграммы декларации класса приведено в приложении 4.

Декларация класса служит для определения класса, связанного с идентификатором класса. Класс состоит из «объектов», каждый из которых является динамическим представителем. (динамическим экземпляром, или короче — экземпляром тела класса).

Объект порождается в результате вычисления «генератора объекта», аналогичного обращению к процедуре.

Тело класса всегда действует как блок. Если оно имеет форму оператора, который не является непомеченным блоком, тело класса отождествляется с блоком (т.е. действует так, как будто бы на его месте стоит блок) вида

begin; S end

где S есть буквальная копия данного тела. Расщепленное тело действует как блок, в котором символ inner представляет пустой оператор.

Для каждого данного объекта формальные параметры, величины, специфицированные в совокупности виртуальных, и величины, декларированные локальными в теле класса, называются «атрибутами» объекта. Декларация или спецификация атрибута называется «определением» этого атрибута.

Для каждого формального параметра требуется спецификация в совокупности спецификаций. Параметры считаются переменными, локальными в теле класса. Они получают первоначальные значения в соответствии с правилами передачи параметров (см. приложение). Вызов по наименованию параметров декларации класса не допускается.

Разрешаются следующие спецификации:

(тип), array и (тип) array.

Атрибуты, определенные в совокупности виртуальных, называются «виртуальными величинами». Они не должны встречаться в списке формальных параметров.

Виртуальные величины имеют некоторые свойства, сближающие их с формальными параметрами, вызываемыми по наименованию. Однако для каждого данного объекта окружением соответствующих «фактических параметров» является сам этот объект, а не окружение соответствующего генератора объектов. Конфликты наименований между формальными параметрами и прочими атрибутами, определенными в декларации класса, не допускаются.

В выражениях для граничных пар в декларации атрибута-массива допускается употребление формальных параметров декларации класса, атрибутом которого является рассматриваемый атрибут-массив.

Пример.

Следующая декларация класса описывает интегрирование по Гауссу с п абсциссами как составное понятие:

class Гаусс (п); integer п;

Begin

array W, X [1: n];

real procedure интеграл (F, a, b)

real procedure F: real a,b;

begin real сумма; integer i;

for i: = 1 step 1 until n do

сумма: = сумма + F(a + 0.5*(b — a)* (x[i]+1))*W[i];

интеграл:= 0.5 * (ba)* сумма

end интеграл;

comment вычисление значений элементов массивов W и X как функций от n;

…………………………………………………………………………….……

еnd Гаусс;

Оптимальные веса W и абсциссы X могут быть вычислены как функции от п. Поскольку алгоритм вычисления W и X является частью тела класса, вычисление и присваивание этих значений может выполняться в момент порождения объекта. Могут сосуществовать несколько объектов класса Гаусс с различными значениями n. Каждый такой объект имеет локальную процедуру интеграл для вычисления интеграла по соответствующей формуле с п абсциссами.





Дата публикования: 2015-01-23; Прочитано: 228 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...