函数返回值string与返回值bool区别------c++程序设计原理与实践(进阶篇)
为什么find_from_addr()和find_subject()如此不同?比如,find_from_addr()返回bool值,而find_subject()返回string。原因在于我们想说明:
- find_from_addr()应该区分有地址行当内容为空(“”)和无地址行两种不同的情况。对于第一种情况,find_from_addr()返回true(因为找到了地址行)并将s置为空字符串“”(因为地址为空)。而对于第二种情况,应该返回false(因为没有地址行)。
- 对于主题为空或者没有主题行的情况,find_subject()都返回“”。
find_from_addr()将这两种情况区分开来,是有意义有必要的。当在数据文件中查找信息时,会频繁出现这种不同情况间的细微差别:我们是否找到了希望查找的域?这个域中的内容是否有用?在一个实际的程序中,find_from_addr()和find_subject()都应该按照现在的find_from_addr()的风格来设计,以使用户能区分这种区别。
(是否存在内容,这些内容是否为空,何时用bool(形参为引用,返回该内容),何时返回相应类型)
c++程序设计原理与实践(进阶篇)