类的不变式(部分转载片段)


实现类的不变式的做法是为类定义一个名为is_valid的方法。然后该类的每一个公有方法都把它放到断言里进行调用,进入方法和退出时都调用,前置条件之后进行类的不变式的检查。
 
不变式只对那些具有方法的类才是必要的,而对于仅仅作为变量聚合体的简单结构而言是没有必要的,就是说,任何具有方法的类都应该具有不变式。 
 
基本上,断言是一种运行期测试,通常仅被用于调式版或测试版的构件。
 
断言被用于客户代码中侦测任何你认为绝不会发生的事情。
 
因为C++把指针隐式的解释为布尔值,所以我们可以借助于“字面字符常量可被转换为非零指针进而被转换为true”这个事实,把一则易于阅读的消息和断言的测试表达式进行逻辑与运算。#define MESSAGE_ASSERT(m, e) assert((m && e))


断言的用途:
A)检查特定于实现的假设
B)检查在方法的入口必须为真的条件(前置条件)
C)检查在方法的出口必须为真的条件(后置条件)
D)检查在任何时候对于一个对象必须为真的条件(不变式)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值