Поддерживается операция порождения нового объекта
оператор '*' не объявлен явно публичным.
Поддерживается операция порождения нового объекта указанного
класса. В отличие от языка Си++ в CO2 невозможно совместить
создание нового объекта с его инициализаций (понятие
метода-конструктора начального значения объекта в CO2 не
поддерживается). Для инициализации необходимо либо явно
обратиться к соответствующему методу класса с указанием вновь
созданного объекта (поддерживается соответствующий механизм
"передачи сообщений", означающий на самом деле вызов функции),
либо воспользоваться оператором '*' и явно присвоить новое
значение, если '*' - публичный оператор для данного класса.
CO2 включает средства конструирования значений-кортежей,
множеств, и списков. Понятие значения-кортежа фактически
эквивалентно понятию значения-структуры обычного языка Си (с
тем отличием, что элементами кортежа могут являться объекты,
множества и списки). Для значений-множеств и списков
поддерживаются операции добавления и изъятия элементов, а
также набор теоретико-множественных операций (и конкатенации
для списков).
Основой манипулирования объектами, хранимыми в БД, является
расширенное по сравнению с языком Си средство итерации.
Итератор применим к значениям-множествам или спискам.
Фактически он означает последовательное применение
оператора-тела цикла ко всем элементам множества или списка.
Если мы вспомним, что долговременно хранимому классу объектов
неявно соответствует одноименное значение-множество с
элементами-объектами данного класса, то становится понятно,
что итератор языка CO2 обеспечивает явную навигацию в классах
объектов. Единственное, что остается от привычных
пользователям СУБД языков запросов, - это ограниченная
возможность указания характеристик требуемых в цикле объектов
(это делается путем использования оператора разыменования и
явного указания условий на атрибуты; конечно, для этого нужно,
чтобы оператор '*' был объявлен публичным в данном классе).
Разработчики O2 подчеркивают, что они умышленно сделали CO2
Содержание Назад Вперед