Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果..否则警告“;并非所有控制路径都返回一个值";_C++_Loops_Return_Warnings - Fatal编程技术网

C++ 如果..否则警告“;并非所有控制路径都返回一个值";

C++ 如果..否则警告“;并非所有控制路径都返回一个值";,c++,loops,return,warnings,C++,Loops,Return,Warnings,我有一个if…else语句,在编译时收到警告“并非所有控制路径都返回值”。有人能告诉我为什么我会收到这个警告吗 我的代码: template<typename T> double NumericArray<T>::Dot(const NumericArray& na) { if (Size() == na.Size

我有一个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;
    }
}
模板
双数字阵列::点(常数数字阵列和na)
{
如果(Size()==na.Size())
{
双结果=0;

for(inti=0;i,因为在最终的else或if块之外没有返回语句


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

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

请考虑:当
Size()
不等于
na.Size()时,该函数返回什么值Byron You应该考虑John Kugelman的回答,对于您的方法,您可能不想返回任何东西,但是在那个消息中抛出一个异常并在其他级别管理它。同意。<代码>其他< /Calp>实例似乎应该读“代码>抛出STD::DimaNyError(“元素乘积操作数不相等”)。
。即使您要打印这样的消息,也应该转到
std::cerr
而不是
std::cout