获取控制权到达非无效函数警告的末尾,尽管我在 th 函数中有返回语句



我正在编译一个 c++ NodeList 类,我收到警告"控制到达非无效函数的末尾",但我确实在给出错误的函数中有返回语句,我不清楚是什么导致了错误。

我尝试将 return 语句放在 for 循环中,该语句应该通过在函数到达它时中断函数来工作,并尝试使用单独的指针。

DataType * ArrayList::insertAfter(const DataType & target,const DataType & value){   // *This function replaces an array element with a parameter (DataType objects)* //
    for(size_t i = 0 ; i < m_size ; i++){
        if (m_array[i] == target){
                    m_array[i+1] = value;
                    return &m_array[i+1];
                }
    }   
}

我希望文件能够编译,但警告会阻止这种情况。

将我的评论变成答案:

如果从不满足if条件或for循环从未运行,则return可能不会执行。

因此,您应该在for循环结束后返回一些默认值(在这种情况下可能nullptr?另一种选择是引发异常。

最新更新