如果。。否则警告" not all control paths return a value"

if..else warning " not all control paths return a value"

本文关键字:return paths value control not 警告 如果 all      更新时间:2023-10-16

我有一个if…else语句和我得到的警告"不是所有的控制路径返回值",当我编译。有人能告诉我为什么我得到这个警告吗?

我代码:

template<typename T>                                                                        
double NumericArray<T>::Dot(const NumericArray& na)
{
    if (Size() == na.Size())
    {
        double result = 0;
        for (int i=0; i<Size(); i++)
        {
            result += ((na.GetElement(i))*(GetElement(i)));
        }
        return result;
    }
    else 
    {
        cout<<"Error! Dot Product Operands Number Of Elements Unequal"<<endl;
    }
}

除了定义的结果之外,我不知道如何通过我的代码达到其他任何东西。

谢谢。

因为在最后的else或if块之外没有返回语句。

如果此条件if (Size() == na.Size())的计算结果为false,则该方法不返回值

else子句中既没有return语句也没有throw