类不变式的实现: 每个类定义一个非公有的非虚方法isValid(),不带参数,返回布尔值。
每次调用公有函数时,开始时调用一次该方法(在先验条件测试之后),并在结束时再调用一次;在有些实现中,不变式方法内部可能也会有断言,而不必等到返回至它的调用者。
void MyClass::foo()
{
ASSERT(isValid());
...
ASSERT(isValid());
}
摘自《Extended STL》
isValid()非虚函数是必须的,不然有可能被子类覆盖.
非公有好像没什么必要,不知有什么用意。
类不变式的实现
类不变式实现与有效性检查
最新推荐文章于 2023-05-31 00:14:29 发布
本文探讨了类不变式的实现方法,通过每个类定义一个非公有的非虚方法isValid()来确保对象的有效状态。每次调用公有函数时,会进行先验条件测试,并在结束后再次验证有效性。这种方法强调了非虚函数的重要性,防止被子类覆盖,同时讨论了非公有方法的存在意义。
2155

被折叠的 条评论
为什么被折叠?



