Как только процедура не указана как созданная, ее нельзя использовать для создания объекта. В исходном примере экземпляр класса B
может быть создан с использованием make
, но не default_create
, т.е. инструкция создания create b
будет помечена как ошибка (при условии, что b
имеет тип B
) .
С другой стороны, если предложение create
отсутствует вообще и класс не откладывается, то для создания объекта используется процедура default_create
. Это может быть запрещено наличием пустого предложения создания:
class C
inherit
A
create -- There are no creation procedures, no instance of the class can be created.
feature
...
end
Резюме:
- Нет условия создания:
default_create
используется.
- Пустое предложение создания: экземпляр не может быть создан.
- Непустое условие создания: для создания могут использоваться только перечисленные процедуры.