我想在不满足条件时将消息/错误输出到控制台,但是该函数返回一个对象。什么是解决此问题的好方法?

Person PriorityQueue::poll()
{
    if (size == 0)
    {
        std::cout << "\nERROR: Empty Queue\n";
        //How Do I Return From Here
    }

    if (size == 1)
    {
        end--;
        size--;
        return queue[(end + 1)];
    }
    else if (size > 1)
    {
        Person temp = queue[0];
        queue[0] = queue[end];
        end--;
        size--;

        bubbleDown(0);

        return temp;
    }
}

最佳答案

您可以使用异常(exception)。但是,异常经常被滥用,还有其他选择(例如返回值,std::optionalstd::tupleshared_ptr)。
通常,我避免返回必须具有含义的值(如构造的对象),因为应该有一种检查错误条件的方法。

07-28 01:03
查看更多