函数返回bool工作,即使它返回1或0

时间:2014-11-13 02:06:06

标签: c++

bool CWaypoint::less(CWaypoint const &wp_right)
{
    bool result;
    CWaypoint temp1;

    (calculateDistance(temp1) > temp1.calculateDistance(wp_right)) ?
            result = 1 : result = 0;

    return result;
}

即使我没有返回bool类型,为什么我不会收到错误?

1 个答案:

答案 0 :(得分:6)

发生整数到布尔值的转换。来自C ++标准:

  

4.12布尔转换[conv.bool]

     

算术,无范围枚举,指针或指向成员类型的指针的prvalue可以转换为a    bool 类型的prvalue。零值,空指针值或空成员指针值将转换为 false ;   任何其他值都转换为 true