August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
当我们发现一个非法日期时,应该做什么呢?检查非法日期的代码应该放在程序中什么位置呢?从5.6节我们可以得到第一个问题的答案是“抛出一个异常”,而放置检查代码的位置显然应该是我们最初构造一个Date对象时。如果没有创建非法的Date对象,而且成员函数也编写正确,那么我们就永远不会得到具有非法值的Date对象。因此,我们应该阻止用户创建具有非法状态的Date对象:
我们将合法性检查代码放到一个独立的函数is_valid()中,这一方面是因为,从逻辑上讲,合法性检查与初始化就是不同的工作,另一方面是因为,我们可能需要多个构造函数。如你所见,除了私有数据外,我们还可以为类声明私有函数:
给出这样的Date定义后,我们可以写出如下代码:
我们现在知道,<<和add_day()会获得一个合法的日期作为它们的操作对象。 ...