C++ 递归困境

C++ 递归困境,c++,recursion,C++,Recursion,这两者有什么区别 int find_set ( int v ) { if ( v == parent [ v ] ) return v ; return parent [ v ] = find_set ( parent [ v ] ) ; } 以及: 正如@Omri所述,区别在于,如果if语句不执行,那么第二个语句就没有返回,这会给没有返回值的代码路径留下一个编译器错误(希望如此)。与露比语言不同,C++方法或函数的最后语句不是隐式返回值。p> 如@Omri所

这两者有什么区别

int find_set ( int v ) 
{
    if ( v == parent [ v ] )
        return v ;
    return parent [ v ] = find_set ( parent [ v ] ) ;
}
以及:


正如@Omri所述,区别在于,如果if语句不执行,那么第二个语句就没有返回,这会给没有返回值的代码路径留下一个编译器错误(希望如此)。与露比语言不同,C++方法或函数的最后语句不是隐式返回值。p> 如@Omri所述,不同之处在于,如果if语句不执行,则第二个语句没有返回,这将(希望)给没有返回值的代码路径留下一个编译器错误。与露比语言不同,C++方法或函数的最后语句不是隐式返回值。p> 如果
if
语句失败,则第二个语句没有
return
语句。这就是你的意思吗?如果
if
语句失败,则第二个语句没有
return
语句。这就是你的意思吗?
int find_set ( int v ) 
{
    if ( v == parent [ v ] )
        return v ;
    parent [ v ] = find_set ( parent [ v ] ) ;
}