c++ primer plus 第15章友,异常和其他:异常,15.3.2返回错误码
`
15.3.2返回错误码
15.3.2返回错误码
一种比异常终止更灵活的方法是,使用函数的返回值来指出问题。例如,ostream类的 get(void)成员通常返回下一个输入字符的ASCI码,但到达文件尾时,将返回特殊值 EOF。对 hmean()来说,这种方法不管用。任何数值都是有效的返回值,因此不存在可用于指出问题的特殊值。在这种情况下可使用指针参数或引用参数来将值返回给调用程序,并使用函数的返回值来指出成功还是失败。istream 族重载>>运算符使用了这种技术的变体。通过告知调用程序是成功了还是失败了,使得程序可以采取除异常终止程序之外的其他措施。程序清单15.8是一个采用这种方式的示例,它将hmean()的返回值重新定义为bool,让返回值指出成功了还是失败了,另外还给该函数增加了第三个参数,用于提供答案。
程序清单15.8 error2.cpp
//error2.cpp -- returning an error code
#include <iostream>
#include <cfloat> // (or float.h) for DBL_MAX
bool hmean(double a,