Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 05.10.2003 12:22
Это работает. Усложняем задачу - Поле $flag формируется на базе полей определённых только в базовом классе:@CLASS class1 @init[] $hashFlag[ $.flag(1) ] $flag(0) $test[^lang[]] @lang[] $result[ru]Class2
@CLASS class2 @USE /class1.p @BASE class1 @init[] ^BASE:init[] $flag(^makeFlag[]) @lang[] ^if($flag){ $result[en] }{ $result[^BASE:lang[]] } @makeFlag[] $result($hashFlag.flag)В этом случае при таком конструкторе Class2
@init[] ^BASE:init[] $flag(^makeFlag[])Вывод такой (как и в прошлой задаче):
Поле test формируется вызовом ^lang[] и: Поле test класса Class1 - ru Поле test класса Class2 - ru Однако вызов ^lang[] в Class2 даёт - enА при шаманстве:
@init[] $flag(^makeFlag[]) ^BASE:init[]Ещё и перестаёт работать ^lang[] в производном классе:
Поле test формируется вызовом ^lang[] и: Поле test класса Class1 - ru Поле test класса Class2 - ru Однако вызов ^lang[] в Class2 даёт - ru