原文 规范说:类不变量
是继承
的,即,子类
要满足基类不变量
.
import core.exception;
class A
{
int i = 3;
invariant { assert(i >= 2); }
}
class B : A
{
void setB(int v) { i = v; }
invariant { assert(i <= 10); }
}
void main()
{
B b = new B;
b.setB(1);
}
B应满足:
assert(i >= 2)
//这里上面应失败
assert(i <= 10)
然而,并没有调用A
不变量
7337
是关于在调用
方法后不为无不变量
的派生类调用基类
中的不变量,而19537
是关于在调用方法后不同时
调用基类和派生类
中的不变量
.