类不变式的实现

类不变式的实现: 每个类定义一个非公有的非虚方法isValid(),不带参数,返回布尔值。
每次调用公有函数时,开始时调用一次该方法(在先验条件测试之后),并在结束时再调用一次;在有些实现中,不变式方法内部可能也会有断言,而不必等到返回至它的调用者。

void MyClass::foo()
{
ASSERT(isValid());
...
ASSERT(isValid());
}


摘自《Extended STL》

isValid()非虚函数是必须的,不然有可能被子类覆盖.
非公有好像没什么必要,不知有什么用意。

你可能感兴趣的:(实现)