Eiffel:错误:变量设置不正确.在make中调用defaultcreate或任何父级调用/重新定义defaultcr



不确定,但它使我在创建过程的调用顺序中获得Error: variable is not properly set.的时间不同。我发现在调用default_create之前创建类属性似乎可以解决这个问题。为什么会这样?default_create似乎没有在我的make例程中调用什么??!!!

试着做一个例子,即使我认为我不能用一个简单的例子来重现它。。。

工作

class A
feature
attr: B
make
do
create attr
default_create
end
end

错误:变量设置不正确

class A
feature
attr: B
make
do
default_create
create attr
end
end

default_create进行了一些调用。可能有对Current的调用(直接或间接,例如,如果Current作为参数传递到某个地方)。如果此时未设置属性attr,则当前对象未完全初始化,并且在常规功能调用中使用它可能会导致对Void目标的调用(特别是由于多态性)。为了避免此问题,需要在任何涉及Current的调用之前设置所有属性。

最新更新