我想在不满足条件时将消息/错误输出到控制台,但是该函数返回一个对象。什么是解决此问题的好方法?
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::optional
,std::tuple
,shared_ptr
)。
通常,我避免返回必须具有含义的值(如构造的对象),因为应该有一种检查错误条件的方法。