Передача анонимного объекта производного класса в процедуру в Eiffel - PullRequest
0 голосов
/ 26 апреля 2020

Предполагая, что у нас есть:

class A ...
class B inherit A ...

f (a_a: A) ...

Тогда, вы можете написать что-то вроде следующего псевдокода без использования временной переменной?

-- `y` is an argument to B's constructor.
f (create B.make(y))

1 Ответ

1 голос
/ 26 апреля 2020

Вы ищете выражение создания. В отличие от инструкции по созданию, в ней не указана целевая сущность, но всегда указывается тип создания:

create {B}.make (y)

Примечание. Как правило, если тип можно спутать с сущностью, он заключен в фигурные скобки. Например, во фразе create B.make (y) терминал B интерпретируется как имя объекта. Заключение в скобки превращает его в тип.

...