关于函数的默认返回值
bool A::f()
{
....
while( ... )
{
....
if( ... )
return false; //###
....
}
}
bool A::ff()
{
....
if( ! f() )
return false;
return true;
}
A::f()中只有一个return(###处),函数结尾忘了写return true。在程序状态不变的情况下,反复执行A::ff(),发现偶尔(大约10次中有一次)对f()的调用会返回false。
但是在###处加断点,从没停下,说明f()一定是在while结束后返回的。我另写了一个简单的类似f()的测试程序,结果函数一定会返回true。
对f()的调用为什么有时会返回false呢?
函数结尾处加上return true以后,运行二、三十次都正常,但是不知道会不会偶尔还返回false。