首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会员未按预期更换,为什么?

会员未按预期更换,为什么?
EN

Stack Overflow用户
提问于 2012-04-16 12:46:34
回答 1查看 70关注 0票数 0

目的:所有的派生类都应该从它们的基类继承一些默认方程。当默认方程对派生类无效时,它应该重新声明它。

这里是一个有点愚蠢的极简主义的例子。

代码语言:javascript
复制
package Pkg

  class Equations
    Real x;
  end Equations;

  class DefaultEquations
    extends Equations;
    equation
      x = 0.0;
  end DefaultEquations;

  class Base
    replaceable DefaultEquations equations extends Equations;
  end Base;

end Pkg;

model DuplicateEquations

    import Pkg.*;

    class CustomizedClass
      extends Base;
      redeclare Equations equations;
      equation
        equations.x = 3;
    end CustomizedClass;

    CustomizedClass customized;

end DuplicateEquations; 

由于一些神秘的原因,默认的方程式并不过分:

代码语言:javascript
复制
omc Test.mo Package.mo
class DuplicateEquations
  Real customized.equations.x;
equation
  customized.equations.x = 0.0;
  customized.equations.x = 3.0;
end DuplicateEquations;

为什么会发生这种事?为什么生成 x=0 x=3

如果我注释掉package声明,我只得到预期的x=3方程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 14:25:37

必须重新声明类型,而不是组件。,禤浩焯指出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10174345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档