首页 百科知识 用继承来实现层次约束

用继承来实现层次约束

时间:2022-10-16 百科知识 版权反馈
【摘要】:例如,假设前面例子里的Packet类被继承:在Word_Packet类的实际对象调用随机过程中,addr_range和word_align约束同样有效。当重载一个随机属性时,要确保父类成员中的存在的约束也已经被重载。在类继承时,现有的约束对所有的新加入到子类中的成员没有任何影响。以前的约束只适用于类继承范围内的被定义过的成员。super.m_address的约束条件仍然是基类中的addr_range。有时,通过先固定扩展类的名称,然后把约束条件通过类的层次关系向后继承是一个很有效的方法。

10.3 用继承来实现层次约束

在扩展类时,约束可以被增加或重载,就像类的成员和成员函数一样。除非被重载,基类中现有的约束仍然有效。例如,假设前面例子里的Packet类被继承:

img296

在Word_Packet类的实际对象调用随机过程中,addr_range和word_align约束同样有效。当重载一个随机属性时,要确保父类成员中的存在的约束也已经被重载。

在类继承时,现有的约束对所有的新加入到子类中的成员没有任何影响。以前的约束只适用于类继承范围内的被定义过的成员。例如,假设Word_Packet类的定义如下:

img297

对派生类中的m_address成员的唯一约束条件就是word_align。super.m_address的约束条件仍然是基类中的addr_range。

有时,通过先固定扩展类的名称,然后把约束条件通过类的层次关系向后继承是一个很有效的方法。从上面的例子中,类名为Word_Packet就是公用的。如果不需要额外的约束条件,在扩展类时就不需要提供相应的程序段。

img298

img299

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈